2012-08-02 83 views
3

一個特定的字符串一個div嘗試基於另一個問題folling:隱藏包含在jQuery的

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="jquery-latest.min.js"></script> 
<script type="text/javascript"> 
$("div p:contains('text')").parent('div').hide(); 
</script> 

<title>test</title> 
</head> 

<body> 

<div> 
<p>text</p> 
</div> 

</body> 
</html> 

但它不工作。 AM我錯過了明顯的東西?

回答

4

只有在DOM加載完成後,才需要運行jQuery的東西。

$(document).ready(function() { 
    $("div p:contains('text').parent('div').hide(); 
}); 
7

您錯過了document.ready事件。請參閱http://api.jquery.com/ready/

<script type="text/javascript"> 
$(document).ready(function() { 
    $("div p:contains('text')").parent('div').hide(); 
}); 
</script> 
+0

謝謝!不能相信我錯過了那個。代碼看起來像定位一個「立即購買」輸入按鈕而不是div? – Dan382 2012-08-02 13:51:10

3

看起來代碼沒有問題。

$(document).ready(function() { 
    $("div p:contains('text')").parent('div').hide(); 
}); 

檢查this out。

更新

所有檢查this出來。這是一個不區分大小寫以上的版本:

// Add the case-insensitive selector 
$.expr[":"].containsNoCase = function(el, i, m) { 
    var search = m[3]; 
    if (!search) return false; 

    var pattern = new RegExp(search,"i"); 
    return pattern.test($(el).text()); 
}; 

$(document).ready(function() { 
    $("div p:containsNoCase('text')").parent('div').hide(); 
}); 
+0

因評估而降低評分。你可以使用'new RegExp'來創建一個沒有eval的正則表達式。 – valscion 2012-08-02 12:55:04

+0

@VesQ,我更新了我的答案,用RegExp替換eval。此外,我搜索了一下,但無法找出爲什麼eval是邪惡的?你可以點亮一下嗎? – 2012-08-02 13:24:53

+0

嗯得到它:http://stackoverflow.com/questions/646597/eval-is-evil-so-what-should-i-使用inetd – 2012-08-02 13:27:07