我有以下布局:
<div class="widgets">
<div class="rating_block">
<span class="iFoot fMin"><%= film.GoingCount %></span>
<div class="stars_rating">
<div class="stars_off"></div>
<div class="stars_on"></div>
</div><!-- .stars_rating-->
<span class="num_rating">(<%= film.Rating %>)</span>
<div class="expand"></div>
</div><!-- .rating_block-->
<div class="voice_block">
<div class="going" filmid="<%=film.OID %>">
<a href="">I'm going!</a>
<div id="going_too">Going too: <%= film.GoingCount %></div>
</div><!-- .going-->
<div class="data_for_rating">
<div>Vote</div>
<div class="star_for_rating">
<ul>
<li>
<a href="#">1</a>
</li>
<li>
<a href="#">2</a>
</li>
<li>
<a href="#">3</a>
</li>
<li>
<a href="#">4</a>
</li>
<li>
<a href="#">5</a>
</li>
</ul>
</div><!-- .star_for_rating-->
<div>Average: 4,5 (89)</div>
</div><!-- .data_for_rating-->
</div><!-- .voice_block-->
</div><!-- .widgets-->
我的js功能:
function setUpUpdateGoingCount() {
$("div.going a").click(function (e) {
var goingToo = $(this);
e.preventDefault();
var filmId = $(this).parent("div").attr("filmid");
$.post("/Cinema/UpdateGoingCount", { id: filmId }, function (obj) {
if (obj.Success) {
goingToo.parent("div").find("#going_too").text("going too: " + obj.Result); //work
goingToo.closest(".rating_block").find(".iFoot.fMin").text(obj.Result); //not work
}
});
});
};
为什么jquery无法在课程span
中找到iFoot.fMin
?
我使用的是closest
,因为此块(widget
)可能有几个。
答案 0 :(得分:7)
goingToo.closest(".rating_block")
应该是这里的问题。
最近的作品如下:
获取与选择器匹配的第一个元素,从当前元素开始并逐步向上遍历DOM树。
通过DOM树进展,不会有.rating_block
,只有.voice_block
您可以执行以下操作:
goingToo.closest(".voice_block").prev(".rating_block").find(".iFoot.fMin")
哪个会抓住最近的.voice_block
,然后抓住上一个同级rating_block