我遇到了我正在合併的代碼問題。如何使用jquery包含:選擇器到一個div和匹配時顯示不同的div塊?
參考: http://api.jquery.com/contains-selector/ http://api.jquery.com/children/
問題:我使用jquery包含:選擇以匹配關鍵字(來自變量)到一個特定的DIV(類= 「關鍵詞」)。如果有匹配,則顯示不帶關鍵字DIV文本的另一個DIV(class = display)。
另一個問題是,當變量關鍵字與DIV(class = display)匹配時,它顯示DIV(class = display) - 但它不應該是因爲我想限制它到DIV(class =關鍵字)。
這裏是我的代碼:
<div class="container">
<div class="keywords" style="display:none">San Antonio Spurs</div>
<div class="display" style="display:none">Results one for SAS</div>
</div>
<br>
<div class="container">
<div class="keywords" style="display:none">Miami Heat</div>
<div class="display" style="display:none">Results two for MIA</div>
</div>
<br>
<div class="container">
<div class="keywords" style="display:none">Los Angeles Lakers</div>
<div class="display" style="display:none">Results three for LAL</div>
</div>
<br>
<div class="container">
<div class="keywords" style="display:none">Cleveland Cavaliers</div>
<div class="display" style="display:none">Results two another for CAVS</div>
</div>
這裏的腳本 -
var keyword= "Spurs";
$('.container').each(function(){
if($(this).is(":contains("+keyword+")")){
$(this).children(".display").css("display", "block");
}
});
我試圖使用。孩子,或改變代碼,但無濟於事。
這裏是我的測試案例 -
- 關鍵字=馬刺,然後顯示=結果一個用於SAS(正確結果)
- 關鍵字=克利夫蘭,然後顯示=結果的兩個另一個用於CAVS(正確結果)
- 關鍵字= SAS,那麼不顯示任何東西(但我的代碼是不正確的)
- 關鍵字= LAL,則不會顯示任何東西(但我的代碼是不正確的)
與#3,#4中的問題,但仍然顯示DIV(類=顯示器)
這裏是我的測試小提琴 - http://jsfiddle.net/m6swkksg/14/
任何幫助就可以了。謝謝。
Thanks @Arun P Johny它的工作! - 在這裏得到了一個新的測試 - http://jsfiddle.net/gw7v2b8x/ 我錯過了.has,但現在看起來正確與我的測試用例。 – syntaxcode 2014-09-19 04:51:46
@syntaxcode你可以使用SO代替jsfiddle中的新代碼片段,因爲我上面已經附上 – 2014-09-19 05:06:21
感謝你使用這個新的代碼片段工具。太好了!我可以檢查我的關鍵字測試! – syntaxcode 2014-09-19 05:12:13