2

我敢肯定,这对我来说完全是愚蠢的举动,但无法弄清楚这里发生了什么。

我正在尝试选择一个包含特定单词的 div,但 Jquery 似乎选择了错误级别的 div。如果你运行它,你会明白我的意思:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>

    <script type="text/javascript">
        $(function () {
            $(".ms-my-profileDetails:contains('Birthday')").css("color", "red");
        });
    </script>
</head>
<body>
    <div class="ms-my-profileDetails">
        <div>
            Department : <a href='http://Someurl'>IT</a>
        </div>        
        <br />
        <div>
            Birthday : <a href='http://Someurl'>1921-04-13</a>
        </div>
        <br />
    </div>
</body>
</html>

<div class="ms-my-profileDetails">当我只想要生日 div 时,上面的结果包含匹配生日和部门的整个 div 。

请帮忙。发送

4

5 回答 5

7

你应该是这样的:

$(".ms-my-profileDetails").children(":contains('Birthday')").css("color", "red");

那应该只在子 div 上查看,因此在这种情况下选择你想要的 div ...

于 2013-02-18T14:46:05.507 回答
2

Antons 解决方案的替代方案,不知道它是否更有效

$(".ms-my-profileDetails > div:contains('Birthday')").css("color", "red");
于 2013-02-18T14:47:58.080 回答
1

使用:lastusing contains 获取所有带有您正在搜索的关键字的元素,因此您必须使用 :last 来获取包含它的确切元素

$("div:contains('Birthday'):last").css("color", "red");
于 2013-02-18T14:44:36.853 回答
1

你的选择器是错误的。您告诉 jQuery 使用包含“Birthday”的“.ms-my-profileDetails”搜索元素。您的 html 中只有 1 个元素。

现在,您希望在带有“.ms-my-profileDetails”的元素中包含“Birthday”的 div。那将是:

$(".ms-my-profileDetails div:contains('Birthday')").css("color", "red");

http://jsfiddle.net/pquT7/

于 2013-02-18T14:53:25.683 回答
0

提这个

$(".ms-my-profileDetails").children().last().css("color", "red");
于 2013-02-18T14:47:38.580 回答