<p></p> // return true
<p>something</p> //return false
我想过使用jquery的contains(),但我认为在纯js中有更好的方法吗?检查元素是否包含内容
<p></p> // return true
<p>something</p> //return false
我想过使用jquery的contains(),但我认为在纯js中有更好的方法吗?检查元素是否包含内容
return element.innerHTML.trim().length == 0;
假设你已经有了与ID标签mydiv
<p id='mydiv'>Something</p>
if($('#mydiv').is(':empty'))
或
if($('#mydiv:empty').length)
可以检查它是否是空的。
您可以在纯JS中使用childNodes
或children
。两者都返回一个包含元素的子元素的类似数组的集合。这两个集合都有一个length
属性。
请注意,这两个属性都是实时集合。你可能想将它们浅拷贝到一个数组中。这是一个让所有的身体的孩子的例子。
var hasContent = Array.prototype.slice.call(document.body.children).length;
是这样的:刚
function hasSomething(id) {
var element = document.getElementById(id);
if (element && (element.innerHTML || '').trim())
return true;
else
return false;
}
我会使用旧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>
即使开始标签和结束标签之间只有空格,element.innerHTML也会评估为true。我建议使用'element.innerHTML.trim()'或'element.innerHTML.length === 0'来执行检查。 –
按建议添加 –
如果元素为空,'element.innerHTML'已经返回'''',不需要'element.innerHTML || “”'。另外,IE <9不支持'String.prototype.trim()',因此,出于兼容性的原因,使用'element.innerHTML.length === 0'是更好的选择。 –
检查功能在下面的代码将做的工作,您:
var myTextField = document.getElementById('myText');
if(myTextField.value != "")
alert("nothing")
else
alert("Would you please enter some text?")
}
如何jQuery的版本? –
我不知道,但这是不必要的,因为这在普通的JS中工作。 –