我似乎无法获得一个额外的跨度,以便在其中找到它的父母李...不管它们是不是相同的标签,它都不应该找到它?
这里是前缀,在css中它浮动到列表项内容的右侧,但这不应该影响它吗?
$('aside ul > li').prepend('<span class="icon-arrow-right"></span');
这里的点击功能似乎没有正确生成警报:
$('aside .icon-arrow-right').click(function(){
if($(this).next('ul').hasClass('sub-nav')) {
alert('yes');
} else {
alert('no');
}
});
此功能的当前结果将始终弹出“否”#39;无论列表项是否具有带子类导航的子UL。
编辑:这里是html,请注意js会增加范围,它本身并不存在:
<ul>
<li><span class="icon-arrow-right"></span><a href="#">Accommodations</a>
<ul class="sub-nav">
<li><span class="icon-arrow-right"></span><a href="">Inland View Rooms</a></li>
<li><span class="icon-arrow-right"></span><a href="">Partial Ocean View Rooms</a></li>
<li><span class="icon-arrow-right"></span><a href="">Harbor View Rooms</a></li>
<li><span class="icon-arrow-right"></span><a href="">Ocean View Rooms</a></li>
<li><span class="icon-arrow-right"></span><a href="">ADA Accessible Guestroom</a></li>
<li><span class="icon-arrow-right"></span><a href="">Executive Suites</a></li>
<li><span class="icon-arrow-right"></span><a href="">Spa Terrace Suite</a></li>
<li><span class="icon-arrow-right"></span><a href="">Cannery Row Suite</a></li>
<li><span class="icon-arrow-right"></span><a href="">Grand Bay Suite</a></li>
<li><span class="icon-arrow-right"></span><a href="">Presidential Suite</a></li>
</ul>
</li>
<li><span class="icon-arrow-right"></span><a href="#">Hotel</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Destination</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Dining</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Spa</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Meetings & Events</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Weddings</a></li>
<li><span class="icon-arrow-right"></span><a href="#">Packages</a></li>
<li class="book-header"><span class="icon-arrow-right"></span><a href="#">Book Now</a></li>
答案 0 :(得分:2)
.next()
方法只返回元素的下一个兄弟,如果它不匹配提供的选择器则返回任何内容。
在您的情况下,.next()
元素不是<ul>
,它是<a>
元素。
要查找第一个匹配的兄弟,请使用.nextAll('ul').first()