Jquery包含选择div太高了

时间:2013-02-18 14:43:36

标签: javascript jquery

我确信这是一个彻头彻尾的傻瓜行动,但无法弄清楚这里发生了什么。

我正在尝试选择一个带有特定单词的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相匹配。

请帮助。 TX

5 个答案:

答案 0 :(得分:7)

你应该这样:

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

使用:last使用包含要搜索的关键字的所有元素,因此必须使用:last来获取包含它的确切元素

$("div:contains('Birthday'):last").css("color", "red");

答案 3 :(得分:1)

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

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

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

http://jsfiddle.net/pquT7/

答案 4 :(得分:0)

tyr this

$(".ms-my-profileDetails").children().last().css("color", "red");