如何确定对象是否具有某个元素的子元素?

时间:2017-03-02 11:37:29

标签: javascript

我有一个非常简单的函数,只有当所选对象具有某种类型的子元素时,我才想工作 - 在这种情况下,如果它有ul嵌套。

我试过这个:

var onMouseOver = function() {
 if (this.getElementsByTagName('ul') > 0);{
   console.log('entered');
 }
}

和此:

var onMouseOver = function() {
 if (this.querySelector('ul') != null);{
   console.log('enter');
 }
}

但它没有帮助 - 功能仍然启动,即使它返回'null'。

2 个答案:

答案 0 :(得分:0)

您应该查看这些选择器的长度属性。



var onMouseOver = function() {
 if (this.querySelectorAll('ul').length > 0);{
   console.log('enter');
 }
}






var onMouseOver = function() {
 if (this.getElementsByTagName('ul').length > 0);{
   console.log('entered');
 }
}




答案 1 :(得分:0)

试试这个:)

function ok(obj) {
  var l = obj.children.length;

  for (var i = 0; i <= l; i++) {
    if (obj.children[i].tagName == "UL") {
      var c = obj.children[i].children[0];
      alert("child id is :-" + c.tagName);
      alert("child id is :-" + c.id);
      alert("child value  is :-" + c.innerHTML);
      break;
    }

  }
}
#child {
  display: none;
}
<!DOCTYPE html>
<html>
<body>
  <div id="Parent" onmouseover="ok(this)">Find Child ? mouse over me
    <p id="child">I'm Child</p>
    <ul>
      <li id="list">hello</li>
      </ul>
  </div>
</body>
</html>