有了jQuery我試圖確定<div>
是否有內容,或者如果它確實那麼我不想做什麼,但是如果沒有,那麼我想添加display:none
它或.hide()
。下面是我想出了,顯示一個div元素取決於它是否有內容
if ($('#left-content:contains("")').length <= 0) { $("#left-content").css({'display':'none'}); }
這並不在所有的工作,如果div有沒有內容,那麼它只是顯示了反正可以在任何提供任何意見?
有了jQuery我試圖確定<div>
是否有內容,或者如果它確實那麼我不想做什麼,但是如果沒有,那麼我想添加display:none
它或.hide()
。下面是我想出了,顯示一個div元素取決於它是否有內容
if ($('#left-content:contains("")').length <= 0) { $("#left-content").css({'display':'none'}); }
這並不在所有的工作,如果div有沒有內容,那麼它只是顯示了反正可以在任何提供任何意見?
只需在選擇器中使用:empty filter即可。
$('#left-content:empty').hide();
if($("#left-content").html().length == 0) {
$("#left-content").hide();
}
在什麼情況下' html()。length' be less than 0? – James 2009-12-02 19:15:17
You are right。Never。 – 2009-12-02 19:16:55
嘗試刪除第一空格:
// first remove whitespaces
// html objects content version:
var content = $.trim($("#left-content).html()).length;
if(content == 0) {
$("#left-content).hide();
}
// html RAW content version:
var content = $.trim($("#left-content).html()); // <-- same but without length
if(content == "") { // <-- this == ""
$("#left-content).hide();
}
這不工作,如果正確有'#左content'內空白textnodes。例如'
''''''''裏面有一個空的div。 – 2009-12-02 19:26:15是的,文檔指出,只有在沒有子節點時纔會被認爲是空的,包括文本節點,這肯定會讓你跳起來 – womp 2009-12-02 19:45:34