如果包含某些文本,则运行jquery

时间:2011-06-10 17:17:52

标签: jquery text if-statement contains

只有在粗体元素包含特定文本时才需要运行jquery。我做错了什么?

 <script>
 if ($('b:contains('Choose a sub category:')')) {

 $("td.colors_backgroundneutral").css("background-color","transparent");
 $("td.colors_backgroundneutral").children(':first-child').attr("cellpadding","0");
 };
 </script>

3 个答案:

答案 0 :(得分:27)

除了在单引号中使用单引号(打破字符串)之外,您还在if语句中使用了jQuery选择器。 This selector只会将您的b代码过滤为包含“选择子类别”的代码。然后返回这些元素的列表。它不返回布尔值。 而是使用.contains()方法,如下所示:

if($("b").contains("Choose a sub category")) {
   // do stuff 
}

您可以阅读更多here

编辑,因为.contains()方法似乎已被弃用,这是一个纯粹的JS解决方案:

var el = document.getElementById("yourTagId") // or something like document.getElementsByTagName("b")[0] if you don't want to add an ID.
if (el.innerHTML.indexOf("Choose a sub category") !== -1) {
    // do stuff
}

答案 1 :(得分:17)

我一直用它来确定元素是否存在:

if ($('b:contains("Choose a sub category:")').length > 0) { /*do things*/}

答案 2 :(得分:4)

 if ($("b").has(":contains('Choose a sub category:')").length) { 
 /*Your Stuff Here*/
 }