jQuery获取*精确*父id
我通常会使用$('ChildID').parent().attr('id'),但这只会得到具有该id的第一个divjQuery获取*精确*父id,jquery,parent,Jquery,Parent,我通常会使用$('ChildID').parent().attr('id'),但这只会得到具有该id的第一个div <div id="FOO1"> <div id="bar"></div> <div id="bar"></div> <div id="bar"></div> </div> <div id="FOO2"> <div id="bar" onC
<div id="FOO1">
<div id="bar"></div>
<div id="bar"></div>
<div id="bar"></div>
</div>
<div id="FOO2">
<div id="bar" onClick="alert($(this).parent().attr('id'));"></div>
</div>
这会提醒FOO1,但我需要它做的是提醒实际的父级,而不是第一个div的父级使用这样的id。它正确地给了我FOO2
同一id的元素不应超过一个。。。另外,如果您使用jquery,为什么要使用内联javascript html 小提琴:
FOO2
:在Firefox中,这将正确返回
FOO2
。您的不一致性是由于您在多个元素上使用了相同的ID属性。这种对ID属性的滥用可能会导致奇怪的行为,因为浏览器期望每个ID都是唯一的,并且可能会有不同的行为
我强烈建议将您的id=bar
属性更改为允许复制的类,这将导致更可预测的行为
编辑
注意到前面的注释后,代码仍然使用class属性返回“FOO2”的预期结果。您的错误必须在代码的其他地方。否,您的代码会发出警报
'FOO2'
@伊梅维达斯:打败了你:D@genesis我承认你的胜利。:)这只是一个例子,占用的空间更少。。他们没有相同的id,他们共享一个类,再一次,只是一个例子。你的例子引入了很多潜在的问题。对于试图调试的人来说,这可能会产生很大的误导。
<div id="FOO1">
<div class="bar"></div>
<div class="bar"></div>
<div class="bar"></div>
</div>
<div id="FOO2">
<div id="foo" class="bar">click me</div>
</div>
$("#foo").click(function(){
alert($(this).parent().attr('id'));
});