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


至于你问题的第二部分,那个 div 是td.ms-disc-bordered-noleft元素的“后代”。更具体地说,它是 td 的孩子的孩子。

于 2013-01-10T22:10:59.150 回答
3

作为 inner 的第二个孩子的一种选择<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");

如果我不太了解您的 Q. ...您可以使用:

$('.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 回答