2017-02-25 92 views
1

我有一個代碼讓人想起這個代碼的網站,我不明白爲什麼if語句不起作用。從查看其他代碼示例,我的猜測是我需要在我的if聲明之上的另一個函數? (而不是jQuery(document).ready(function($){jQuery如果元素:包含不工作

HTML:

<p>Paragraph One</p> 
<p class="red">Target paragraph</p> 

的jQuery:

jQuery(document).ready(function($){ 
    if($('p:contains("target")')){ 
    $(this).removeClass("red"); 
    } 
)}; 

的jsfiddle: https://jsfiddle.net/CSS_Apprentice/2a2qpg15/

值得注意:使用jQuery(document).ready(function($){,因爲它是一個WordPress構建。

編輯:離開的"target"小寫版本在這裏,但區分大小寫並不是唯一的問題

任何幫助,方向,和/或文檔感謝!

+1

這是區分大小寫。您需要搜索「目標」http://api.jquery.com/contains-selector/ –

+0

單獨資本化「目標」並不能解決問題,但@KScandrett答案有效。仍然不確定爲什麼'if'語句不起作用 –

+1

它不起作用,因爲'this'不像您所期望的那樣引用jQuery對象。爲了讓它引用你需要使用的對象'$('p:contains(「target」)')。each(function(){... $(this)...})' –

回答

2

變化 「目標」 到 「目標」 - 它是區分大小寫的,你可以用這個來代替:

jQuery(document).ready(function($){ 
    $('p:contains("Target")').removeClass("red"); 
}); 

演示:https://jsfiddle.net/m092Lxyn/

2

檢查長度屬性,因爲jQuery返回的對象在JavaScript中總是具有真值。雖然:contains是區分大小寫的,但使用Target代替。

if($('p:contains("Target")').length) 

對於自this$('p:contains("Target")')除去申請remove()方法直接不是指元件。

$('p:contains("Target")').remove(); 

或使用不區分大小寫的匹配filter()方法。

$('p').filter(function(){ 
    return $(this).text().toLowerCase().indexOf("target") > -1; 
}).remove() 
相關問題