如何使用jQuery選擇所有空標籤。如何使用jQuery選擇所有空標籤?
我想選擇
<p></p>
<p style="display: block"></p>
<p> </p>
<p> </p>
<p> </p>
,而不是
<p>0</p>
<p>Test</p>
我試着用:empty
但它不是我的選擇工作。任何幫助,這是非常感謝。
如何使用jQuery選擇所有空標籤。如何使用jQuery選擇所有空標籤?
我想選擇
<p></p>
<p style="display: block"></p>
<p> </p>
<p> </p>
<p> </p>
,而不是
<p>0</p>
<p>Test</p>
我試着用:empty
但它不是我的選擇工作。任何幫助,這是非常感謝。
您可以使用jQuery.filter()
來做到這一點。
var empty_p = $('p').filter(function(){
return !$.trim($(this).text());
}).get();
這個返回元素是否只包含空格? – doppelgreener
@JonathanHobbs對不起,我沒有測試它......現在編輯答案與測試代碼。 –
$('p').filter(function() {
return !$(this).text().trim();
});
這不是你如何使用['trim()'](http://api.jquery.com/jQuery.trim/) –
@koala_dev這不是一個jQuery trim。 [String.trim()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim) –
糟糕,對不起,因爲混淆 –
$(document).ready(function(){
$("p").each(function(index){
var html = $(this).html();
html = filter(html, " ");
html = filter(html, " ");
if ($(this).html() == ""){
//YOUR CODE
}
});
});
function filter(string, char){
while(string.indexOf(char) > 0){
string.replace(char, "");
}
}
將失敗的空白和' ' –
啊,總是有助於閱讀我想我已經做了一些改變的問題。 – Seano666
爲此,您可以使用jQuery filter和trim方法。
這裏有一個工作示例:http://jsfiddle.net/snqSw/
$("p").filter(function(){
$(this).text($.trim($(this).text())==""?"Works":$(this).text());
});
另一種方式來做到這一點,使用正則表達式,而不是trim()
:
$('p').filter(function() {
return !/\S/.test($(this).text());
})
(JSFiddle)
注意,這(和所有其他解決方案基於$(this).text()
)也將匹配例如這一段:
<p><a href="http://example.com"> </a></p>
甚至:
<p><img src="http://example.com/image.gif"></p>
取決於你想要的段落做什麼,這可能是也可能不是你想要的。如果不是,你會需要更復雜一點的東西;細節將取決於你想要考慮的「空白」段落。
你可以用':empty'發佈你的例子嗎? – Botis
他們實際上不是空的。有空格 – Rab
@Ravi:我的道歉,我無意中發佈了兩次。接下來我應該做什麼? – laradev