如何检查元素是否包含带有'同时'功能,用JS?

时间:2014-09-15 09:23:47

标签: javascript html

我有一些问题! 我需要检查一些文本元素。如果没有文本 - 脚本检查子元素是否相同。这该怎么做? 我需要使用纯JS。

所以这是例子:

   <div class="parent">
      <div class="first"></div>
      <div class="second">TEXT IS HERE!</div>
       <div class="third"></div>
   </div>

文本可以存在于此div的任何内容中,因此如果以前不可用,我需要遍历它们以查找文本。 谢谢!

1 个答案:

答案 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);