2011-09-25 69 views
2

使用jQuery如何将CSS应用于div,如果另一个div包含某个单词?jQuery - 如果div2包含文本的某个单词,将CSS应用于div1?

因此,如果div1包含文本'TriggerWord',我想div 2变成红色。以下是我的尝试。 谢谢

 $("document").ready(function() { 
     if ($("#div1:contains('TriggerWord')")) { 
      $('#div2').css('color','red'); 
     } 
    }); 
+1

唯一不对您的尝试是,你有'引号document'。 – daryl

回答

4

请勿引用document。除此之外,你的尝试是正确的。该:contains()选择是你所需要的:

$(document).ready(function() { 
    if ($('#div1:contains("TriggerWord")').length > 0) { 
     $('#div2').css('color', 'red'); 
    } 
}); 

或简写形式:

$(function() { 
    if ($('#div1:contains("TriggerWord")').length > 0) { 
     $('#div2').css('color', 'red'); 
    } 
}); 

而且这里有一个live demo

+0

您的代码不正确。如果我更改jsFiddle中的HTML中的TriggerWord,则仍然应用红色。 – Evans

+0

@jdln,事实上,我的'如果'条件是错误的。现在它是固定的。选择器返回一个数组,所以为了测试是否有元素匹配这个选择器,我应该测试返回数组的长度。对困惑感到抱歉。 –

1
$(document).ready(function() { 
    if ($("#div1").html().indexOf('TriggerWord') >= 0) { 
     $('#div2').css('color', 'red'); 
    } 
}); 
1

正则表达式的方法:

$(function() { 

    var reg = /Trigger/g; 

    if($('#div1').text().match(reg)) { 
     $('#div2').css({color: 'red'}); 
    } 

}); 

工作小提琴:http://jsfiddle.net/each/NJ966/

0
$(function() { 
    if (/triggerWord/.test($("div1").text()) { 
     $("div2").css('color', 'red'); 
    } 
}); 
相关问题