我确信这是一个彻头彻尾的傻瓜行动,但无法弄清楚这里发生了什么。
我正在尝试选择一个带有特定单词的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
答案 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");
答案 4 :(得分:0)
tyr this
$(".ms-my-profileDetails").children().last().css("color", "red");