为什么其他{}部分不起作用。什么是解决方案。?.........在console.log' in'正在展示,但是' out'没有显示。感谢。
var header = $('header');
header.mouseover(function(event) {
if ($(event.target).parents('li').attr('rel').length > 0) {
console.log('in')
} else {
console.log('out')
}
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
<ul>
<li rel="one"> One Element</li>
<li rel="two"> One Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
</ul>
</header>
&#13;
答案 0 :(得分:1)
这是一种做法
原始代码。
$(event.target).parents('li').attr('rel').length
.parent('li')
没用,因为我们已经在li
元素。
正确的行将是
$(event.target).attr('rel').length
其次$(event.target).parents('li').attr('rel')
到此为止,我们会为undefined
元素获取li
,而undefined
没有length
属性,因此我们可以使用低于ternary if
条件以检查此元素是否实际存在,然后我们可以返回length属性,只需0
var header = $('header');
header.mouseover(function (event) {
var elem = $(event.target).attr('rel') ? $(event.target).attr('rel').length : 0;
if (elem > 0) {
console.log('in')
}
else {
console.log('out')
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
<ul>
<li rel="one"> One Element</li>
<li rel="two"> One Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
</ul>
</header>