我有一个非常简单的函数,只有当所选对象具有某种类型的子元素时,我才想工作 - 在这种情况下,如果它有ul嵌套。
我试过这个:
var onMouseOver = function() {
if (this.getElementsByTagName('ul') > 0);{
console.log('entered');
}
}
和此:
var onMouseOver = function() {
if (this.querySelector('ul') != null);{
console.log('enter');
}
}
但它没有帮助 - 功能仍然启动,即使它返回'null'。
答案 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>