2015-12-03 55 views
0

这里是我的代码:如何获得具有类的元素的当前索引? (JQuery的)

$(document).on("change", ".nomeItem", function() { 
    if ($(this).val().length) { 
     $(this).addClass("input-green"); 
     $(this).removeClass("input-red"); 
     $(this).removeClass("input-white"); 
     if (!($(this).index() in itemNames)) { 
      itemNames.add($(this).index()); 
      itemNames.activate($(this).index()); 
     } else { 
      itemNames.activate($(this).index()); 
     } 
    } else { 
     $(this).addClass("input-red"); 
     $(this).removeClass("input-green"); 
     $(this).removeClass("input-white"); 
     showGeneralMessage("É necessário preencher a quantidade!", "danger"); 
     itemNames.deactivate($(this).index()); 
    } 
    console.log("Nome: " + JSON.stringify(itemNames)); 
}); 

在页面上,有一个按钮,增加了一个新的“产品”,而这个“产品”有内部的它(“.nomeItem”)这一类。 $(this).index()应该给我当前的索引(例如,如果我在第三个产品中触发更改事件)。尽管如此,它总是返回1.我怎样才能得到一个类的元素的当前“eq”或索引?

+0

但是,你的处理程序是变革事件文档对象和不在任何产品上 – Ash

+0

我必须在文档上使用.on(),因为添加了该类的新元素(如果我在.ready()函数中使用它,它仅适用于第一个与该页面,所以我必须“听取”关于“未来元素”的变化)。 –

+0

所以你有多个元素内的'.nomeItem'类名?他们不在同一个容器中,使他们的兄弟姐妹? –

回答

1

尝试使用这项将找到兄弟姐妹元素集合当前索引:

$('.nomeItem').index($(this)); 

反正看DEMO这里,并为您在行动$('.nomeItem').index($(this));$(this).index();之间的差异。

0

尝试这样的事情:(假设你的产品类别是“clsProduct”

$(document).on("change", ".clsProduct.nomeItem", function() {