2013-02-18 67 views
2

我确定这是一个完整的骨头移动在我身边,但无法弄清楚这里发生了什么。jquery包含选择div太高

我想选择一个具有特定单词的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

回答

7

你应该以类似的确切元素:

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

应该只注重对儿童的div也因此选择在这种情况下,要在div ...

+0

谢谢!你是男人 – Fox 2013-02-18 14:47:39

+0

嘿,我很高兴它帮助你:) – DarkAjax 2013-02-18 14:48:32

+0

@狐狸他应该标记这个答案是正确的,如果它解决了你的问题。 – 2013-02-18 14:50:53

1

使用:last使用包含获取与您正在搜索的关键字的所有元素,所以你必须使用:最后得到包含它

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

这是行不通的,因为我的div的是动态的.. ASP.Net可能装上去之前或之后,我的“生日” DIV – Fox 2013-02-18 14:46:11

+1

div的使用:含有呢? http://jsfiddle.net/yn3xX/ – Anton 2013-02-18 14:47:57

+0

Tx Anton。这也适用于 – Fox 2013-02-18 14:50:19

0

酪氨酸THI ŝ

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

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

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

Tx,你也可以工作 – Fox 2013-02-18 14:48:44

1

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

现在,您需要包含“.ms-my-profileDetails”元素的“生日”div。这将是:

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

http://jsfiddle.net/pquT7/

+0

Tx男子。现在有道理 – Fox 2013-02-18 14:55:11