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-IDではなく属性やCSSクラスなどを使用するようにマークアップを変更することを検討してください。

于 2012-06-26T11:37:57.157 に答える
1

HTMLでIDを繰り返すことはできませid="target"class="target"

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