在这里,为什么jquery closest
无法正常工作?我尝试使用find
,next
,但不起作用。我只想在包含html
class
的{{1}}的最近li
中添加children
。
ul
$(document).ready(function(){
if ($('li').children("ul").length) {
$(this).closest(".submenu").html('+');
}
})
*{
margin:0px;
padding:0px;
}
ul li{
list-style:none;
float:left;
margin-right:10px;
}
ul li ul li{
float:none;
}
答案 0 :(得分:2)
您需要找到ul
内的li
的长度。
$('.submenu').parent().each(function(){
if ($(this).children("ul").length) {
$(this).find('.submenu').html('+');
}
})
*{
margin:0px;
padding:0px;
}
ul li{
list-style:none;
float:left;
margin-right:10px;
}
ul li ul li{
float:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<ul>
<li>General<span class="submenu"></span></li>
<li>Extra<span class="submenu"></span></li>
<li>Sport<span class="submenu"></span>
<ul>
<li>
Volleyball
</li>
<li>
Football
</li>
</ul>
</li>
</ul>
</body>
</html>
答案 1 :(得分:1)
您可以通过更改以下代码中的最简单的方法来实现
if ($('li').children("ul").length) {
$(this).find('span').html('+');
}
对此
$('ul li:has(ul)').find(".submenu").html('+');
$(document).ready(function(){
$('ul li:has(ul)').find(".submenu").html('+');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>General<span class="submenu"></span></li>
<li>Extra<span class="submenu"></span></li>
<li>Sport<span class="submenu"></span>
<ul>
<li>
Volleyball
</li>
<li>
Football
</li>
</ul>
</li>
</ul>