2015-01-02 199 views

回答

1
return element.innerHTML.trim().length == 0; 
+0

如何jQuery的版本? –

+1

我不知道,但这是不必要的,因为这在普通的JS中工作。 –

0

假设你已经有了与ID标签mydiv

<p id='mydiv'>Something</p> 

if($('#mydiv').is(':empty')) 

if($('#mydiv:empty').length) 

可以检查它是否是空的。

1

您可以在纯JS中使用childNodeschildren。两者都返回一个包含元素的子元素的类似数组的集合。这两个集合都有一个length属性。

请注意,这两个属性都是实时集合。你可能想将它们浅拷贝到一个数组中。这是一个让所有的身体的孩子的例子。

var hasContent = Array.prototype.slice.call(document.body.children).length; 
0

是这样的:刚

function hasSomething(id) { 
    var element = document.getElementById(id); 
    if (element && (element.innerHTML || '').trim()) 
     return true; 
    else 
     return false; 
} 
1

我会使用旧innerHTML来避免JQuery的像你想要的需要调用它。我在jquery和javscript中都附加了代码。

HTML:

<p id="data">Some text</p> 

的Jquery:

<script> 
function check() 
{ 
    var len= $("#data").text().length; 
    if(len==0) 
     return true; 
    else 
     return false; 
} 

$(document).ready(function(){ 
    document.write(check()); // call check function 
}); 
</script> 

的Javascript:

<script> 
function check() { 
    var x = document.getElementById("data").innerHTML; 
    if(x.length==0) 
    return true; 
else 
    return false; 

} 
</script> 
+0

即使开始标签和结束标签之间只有空格,element.innerHTML也会评估为true。我建议使用'element.innerHTML.trim()'或'element.innerHTML.length === 0'来执行检查。 –

+0

按建议添加 –

+0

如果元素为空,'element.innerHTML'已经返回'''',不需要'element.innerHTML || “”'。另外,IE <9不支持'String.prototype.trim()',因此,出于兼容性的原因,使用'element.innerHTML.length === 0'是更好的选择。 –

0

检查功能在下面的代码将做的工作,您:

var myTextField = document.getElementById('myText'); 
    if(myTextField.value != "") 
     alert("nothing") 
    else 
     alert("Would you please enter some text?")  
} 
+0

提示:如果你有一个'if'来决定是返回一个'true'还是'false',你可以直接返回'if'条件(否定它,如果你需要相反的话),比如'return len = == 0' –

+0

@ Morre-它是一个很好的提示,我会牢记这一点。谢谢。 – ganesh

+0

@莫雷 - 你抓到了我。现在我编辑了它。 – ganesh

相关问题