我有一些问题! 我需要检查一些文本元素。如果没有文本 - 脚本检查子元素是否相同。这该怎么做? 我需要使用纯JS。
所以这是例子:
<div class="parent">
<div class="first"></div>
<div class="second">TEXT IS HERE!</div>
<div class="third"></div>
</div>
文本可以存在于此div的任何内容中,因此如果以前不可用,我需要遍历它们以查找文本。 谢谢!
答案 0 :(得分:1)
您可以在这里试用PureJS解决方案http://liveweave.com/XzjGwg 它返回一个数组,其中每个元素都包含文本
function isStrictlyTextNode(node){
if(node.innerText !== undefined && node.innerText.length > 0 && node.children.length === 0 ) {
return true;
} else {
return false;
}
}
function checkForTextInDivs(elementClass){
var children = document.getElementsByClassName(elementClass)[0].childNodes;
var nbrChildren = children.length;
for(var i = 0; i < nbrChildren; i++) {
if(isStrictlyTextNode(children[i])) {
$result.push(children[i]);
}else if(children[i].children !== undefined && children[i].children.length > 0) {
checkForTextInDivs(children[i].className);
}
}
}
$result = [];
checkForTextInDivs('parent', $result);
console.log($result);