在DOM树中找到相同的div

时间:2012-06-26 11:35:49

标签: jquery

我有一个DOM树:

<div id="all">
  <div id="second">
    <div id="target"></div> *
    <div id="somediv"></div>
  </div>
  <div id="second">
    <div id="target"></div>
    <div id="somediv"></div>
  </div>
  <div id="second">
    <div id="target"></div>
    <div id="somediv"></div>
  </div>
</div>

如何获得id =“target”的所有div?

$('#second').siblings().andSelf().children(':first') - 仅显示第一个目标(*),忽略其余目标。

3 个答案:

答案 0 :(得分:5)

HTML文档中不能有多个具有相同ID的div。相反,使用class =“target”。然后,您可以使用

获取所有具有类目标的div
$("#all .target")

答案 1 :(得分:1)

尝试以下方法:

$('div[id=second]').siblings().andSelf().children(':first')

当提供id选择器时,jQuery将仅返回具有该id的第一个元素。 这是因为具有相同ID的元素是无效HTML 。 HTML解析器通常是灵活的,并且可能在大多数浏览器中都能正常显示,但是不能保证这种情况。考虑更改标记以使用data-属性或CSS类或类似而不是ID。

答案 2 :(得分:1)

您无法在HTML中重复ID。将id="target"替换为class="target"然后 -

$('#all').find('.target');