<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中工作。 –