【发布时间】:2011-07-05 22:01:50
【问题描述】:
我正在学习 Jquery,希望能做得更好。找到了解决办法,想看看有经验的老手是怎么做的……如果有更多的口才,可以这么说。
问题是我有一个位于表格行中的小部件。该小部件与所有其他 20 个小部件具有相同的类。当有人点击一个特定的小部件时,只有那个小部件应该改变。
这是 HTML:
<div class="deal-widget">
<div class="deal-widget-left">
<div class="deal-widget-left-countdown">
<span class="totalcoupons">500</span> of <span class="maxcoupons">500</span>
</div>
<div class="deal-widget-left-remain">
Remaining
</div>
</div>
<div class="deal-widget-right is_open">
<a href="/deal/claim/1113" class="deal-link">Claim It!</a>
</div>
</div>
这是我对 JQuery 的尝试:
Drupal.behaviors.plusone = function (context) {
$('a.deal-link:not(.deal-processed)', context).click(function () {
var parent = $(this).parents('div.deal-widget');
var originalVote = parent.children('div.deal-widget-left').children('div.deal-widget-left-countdown').children('span.totalcoupons').text();
var originalVoteInt = parseInt(originalVote);
var voteSaved = function (data) {
parent.children('div.deal-widget-left').children('div.deal-widget-left-countdown').children('span.totalcoupons').html(originalVoteInt - data.total_votes);
parent.children('div.deal-widget-right').html(data.voted);
parent.children('div.deal-widget-right').removeClass('is_open').addClass(data.votedClass);
}
$.ajax({
type: 'POST',
url: this.href,
dataType: 'json',
success: voteSaved,
data: 'js=1'
});
return false;
})
.addClass('deal-processed');
}
有没有比这更好的方法来选择父母然后第二组孩子到点击的对象?
谢谢
乔
【问题讨论】:
标签: jquery jquery-selectors parent