如果我正在为这样的元素编制索引:
$('#test_form li').each(function(index) {
$(this).addClass('option-nr-' + index);
});
如何在下一步中再次使用索引编号来表示:
if ($('#test_form li').hasClass('option-nr-[index]')){
// do somethin
}
答案 0 :(得分:1)
由于在第一步中为元素创建了特定的类名,因此您只需将该类名用作选择器即可;根本不需要if
语句:
$('#test_form li.option-nr'+index) // will match that specific single element, chain anything you like onto this
根据您对此的操作,可能更有意义的是不为每个元素添加特定的类名,并且首先按索引对它们进行操作。仅当元素要更改顺序或从列表中插入或删除新元素时,才需要特定标识符,并且您需要能够单独跟踪它们。如果您只是在列表中作为列表进行操作,那么当您需要匹配特定元素时,您可以执行此类操作,并获得相同的结果,而无需添加和跟踪大量额外内容类名:
// these are equivalent:
$('#test_form li').eq(index)
$('#test_form li:eq('+index+')')
如果您 要为每个元素添加特定标识符,那么添加ID而不是类名可能会更好:您可以获得较小的性能提升(ID看起来更快) (),但更重要的是,如果ID总是唯一且类名不是,那么您可以更容易地记录您正在阅读代码的内容。)