1

我有一个 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') - 仅显示第一个目标 (*),忽略其余目标。

4

3 回答 3

5

HTML 文档中不能有多个具有相同 ID 的 div。相反,请使用 class="target"。然后你可以得到所有带有类目标的div

$("#all .target")
于 2012-06-26T11:38:12.260 回答
1

尝试以下操作:

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

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

于 2012-06-26T11:37:57.157 回答
1

您不能在 HTML 中重复 ID .. 替换id="target"class="target"然后 -

$('#all').find('.target');
于 2012-06-26T11:38:46.697 回答