使用jquery精简div:contains()选择器

时间:2014-09-30 12:45:02

标签: javascript jquery text selector contains

我有一个几乎看起来像这样的HTML和脚本:

<div>
  <div>
    Post Content
  </div>
  <div>
    <p><strong>Related Topics</strong>
    </p>
    <ul>
      <li>Topic list</li>
      <li>Topic list</li>
    </ul>
  </div>
</div>

我正在尝试仅使用此脚本定位相关主题div而不是帖子内容:

$("div:contains('Related Topics')").css("text-decoration", "underline");

目前该脚本强调包括帖子内容在内的所有内容。 由于HTML是从RSS feed自动生成的,因此无法以任何方式添加css类或编辑它。知道如何在不修改HTML的情况下实现所需的结果吗?

4 个答案:

答案 0 :(得分:1)

您必须在选择中稍微具体一点。例如

$("div").find("p:contains('Related Topics')").css("text-decoration", "underline");

只会在包含&#39;相关主题&#39;。

的段落下划线

答案 1 :(得分:1)

您使用选择器定位最外层div,它也包含“相关主题”文本。试试这个:

$("div").find("div:contains('Related Topics')").css("text-decoration", "underline");

答案 2 :(得分:0)

您可以对每个代码.filter()使用html,无论其文字是&#34;相关主题&#34;

$("*").filter(function() {
    return $(this).html() == "Related Topics";
}).css("text-decoration", "underline");

Demo

答案 3 :(得分:0)

你也可以使用这个spinet。

$(&#34; div&#34;)。find(&#34; div p:contains(&#39;相关主题&#39;)&#34;)。css(&#34; text-装饰&#34;,&#34;强调&#34;);