Jquery nextAll()、prevAll()、next()和prev()不';t返回结果
这是我的js模块:Jquery nextAll()、prevAll()、next()和prev()不';t返回结果,jquery,Jquery,这是我的js模块: let rating = (() => { let rate = (elem) => { if($(elem).hasClass('checked')) unmarkStars($(elem)) else markStars($(elem)) } let unmarkStars = (elem) => { console.log(ele
let rating = (() => {
let rate = (elem) => {
if($(elem).hasClass('checked'))
unmarkStars($(elem))
else
markStars($(elem))
}
let unmarkStars = (elem) => {
console.log(elem.nextAll('.fa-star'))
elem.nextAll('.fa-star').removeClass('checked')
}
let markStars = (elem) => {
console.log(elem.prevAll('.fa-star'))
elem.prevAll('.fa-star').addClass('checked')
}
return {
rate: rate
}
})()
当我单击此ul
中的元素时:
<ul id="rating-select">
<li><span onclick="rating.rate(this)" class="fa fa-star checked"></span></li>
<li><span onclick="rating.rate(this)" class="fa fa-star checked"></span></li>
<li><span onclick="rating.rate(this)" class="fa fa-star checked"></span></li>
<li><span onclick="rating.rate(this)" class="fa fa-star checked"></span></li>
<li><span onclick="rating.rate(this)" class="fa fa-star "></span>
</li>
</ul>
-
控制台中有空结果。似乎
nexthall
都不nextPrev
返回任何结果。我查看了jQuery
文档,四处搜索问题所在,但仍然找不到。对我来说似乎没问题。这里我做错了什么?nextAll
和prevAll
方法分别将兄弟姐妹next和prev返回给它。您应该使用parent
方法选择父li
,然后选择next/prevli
,最后找到.fa-star
elem.parent().nextAll('li').find('.fa-star')
elem.parent().prevAll('li').find('.fa-star')