私はJqueryを学習しています。私は解決策を見出し、熟練したベテランがそれをどうやって行うのかを見たいと思っています...もっと雄弁があれば、話すことができます。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');
}
は、これよりもクリック-時にオブジェクトに子供の親その後、第2のセットを選択する良い方法はあります?
おかげ
ジョー
.closest()魔法のように動作します! diffメソッドをありがとう。私はそれを使用しています。 - Joe –
あなたは大歓迎です!私は助けてくれることを嬉しく思っています。)これ、または別の回答があなたの問題を解決した場合は、受諾(回答の隣のチェックマークをクリック)または投票のアップ(左上の矢印をクリック) 。それは義務ではありませんが、コミュニティによって高く評価されています。 –
チェックマークをクリックして緑色に変わった。私は投票のステータスをまだ得られていない。しかし、私は....ジョー –