我遇到了jQuery中匹配元素的问题。
基本上我有列表项,onclick
我想比较两个元素,找出它在列表中的位置,即。
<ul id="someID">
<li>something</li>
<li>something</li>
<li>something</li>
</ul>
// here is the script
var row = 0,
element = $('#someID > li:eq(1)').get(0);
$('#someID > li').each(function(index, value) {
if (value == element) {
row = index;
return false;
}
}
element
处于适当的范围内,这一切都应该有效(或者我认为)。我可以看到它可能不起作用的唯一原因是浏览器将每个list-item
视为相同,因为其innerHTML
是相同的,没有id
或class
我是否有其他方法可以获得列表中列表项的位置?
答案 0 :(得分:4)
var index = $('#someID > li').index( element );
答案 1 :(得分:1)
要比较元素,请尝试:
value === element
==是强制性比较。
===是明确的比较。
要使用jQuery获取元素的位置,请阅读其他人的答案;)
答案 2 :(得分:1)
对于记录,现在有“is()”函数:
element.is(value)
答案 3 :(得分:0)
如果由于某种原因,$ .index()对你不起作用......
您无法向对象添加属性或类的任何原因然后循环遍历项目列表以找到它?
$('li').click(function()
{
$(this).addClass('Selected');
.. loop through element to find index
.HasClass('Selected');
$(this).removeClass('Selected');
})