2011-09-25 26 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'); 
    } 
}); 
相關問題