如何在没有id或类jQuery的情况下比较两个元素

时间:2010-08-17 20:48:11

标签: javascript jquery html

我遇到了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是相同的,没有idclass

我是否有其他方法可以获得列表中列表项的位置?

4 个答案:

答案 0 :(得分:4)

var index = $('#someID > li').index( element );

index

答案 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');
})