2

「自分のコンテンツ」を含む div を選択するにはどうすればよいですか?

<table>
  <tr>
    <td class="ms-disc-bordered-noleft">
      <div class="">
        <div>some content</div>
        <div>my content</div>
      </div>
    </td>
  </tr>
</table>

その div は td.ms-disc-bordered-noleft とどのような関係がありますか?

4

6 に答える 6

5
  • $('.ms-disc-bordered-noleft div:last')
  • $('.ms-disc-bordered-noleft div:eq(2)')
  • $('.ms-disc-bordered-noleft').find('div:eq(2)');
  • また $("div:contains('my content'):last");

ドロイドを返してください...つまり、div...あなたが探している.

それが$('.ms-disc-bordered-noleft div:last')最善の選択肢だと思います。私のパフォーマンス テストでは、一般的に 4 つの提案の中で最も高速であることが示されています (FireFox は を好み$('.ms-disc-bordered-noleft').find('div:eq(2)');ます)。

使用中のさまざまなセレクターの例については、http://jsfiddle.net/jhfrench/cfeZUを参照してください。


あなたの質問の2番目の部分については、そのdivはtd.ms-disc-bordered-noleft要素の「子孫」です。より具体的には、td の子の子です。

于 2013-01-10T22:10:59.150 に答える
3

inner の 2 番目の子としての 1 つのオプション<div>:

var div = $(".ms-disc-bordered-noleft > div > div:eq(1)");
于 2013-01-10T21:55:39.790 に答える
1

「自分のコンテンツ」を含む div を選択するにはどうすればよいですか?

$('.ms-disc-bordered-noleft').find('div').contains("my content");

あなたの質問をよく理解できなかった場合. ...次を使用できます。

$('.ms-disc-bordered-noleft div').find('div:last');

        ^^-parent         ^^-first children  ^^-last div
于 2013-01-10T21:57:38.033 に答える
1

.parent()これは親ノードです。 and.children()またはを使用して上下にトラバースできます。.find()

于 2013-01-10T21:57:43.873 に答える
1

最も直接的なルートは次のとおりです。

var div = $("div:contains('my content'):last");

td との関係に関する限り、上記から始めて、元に戻ることができます。

var cell = div.closest('td');

これらは必ずしもパフォーマンスの点で最速のオプションではありませんが、最短のコードです。そしてショートコードが好き。

于 2013-01-10T22:02:43.237 に答える
0
.ms-disc-bordered-noleft div div:nth-child(2)

また

.ms-disc-bordered-noleft div div:last-child
于 2013-01-11T00:08:53.583 に答える