2012-12-01 54 views
-1

我有一組複選框,我試圖在選中時獲取每個複選框的值並將此值附加到計數器span元素旁邊,但每次點擊任何複選框時,都會將值附加到所有計數器元素。我創建了一個http://jsfiddle.net/creativestudio/xm838/獲取每個組的每個複選框的值,並將其應用於使用jQuery的跨度計數器

這是我使用的JS:

function set_index_id_checkbox() { 
    $("input:checkbox[name='like']").each(function (index) { 
     var currElem = $(this); 
     var prevLabel = currElem.next(); 
     currElem.attr("id", this.id + index); 
     prevLabel.attr("for", prevLabel.attr("for") + index); 
    }); 
} 

set_index_id_checkbox(); 

function getValues() { 
    $("input:checkbox[name='like']").click(function() { 
     if ($(this).is(':checked')) { 
      $('.likes').html($(this).val()); 
     } 
    }); 
} 

getValues(); 

回答

1

那是因爲你與類likes選擇所有的元素,你可以使用prevfindclosest方法來選擇目標元素。

$(this).parent().prev().find('.likes').html(this.value); 

或:

if (this.checked) { // better than creating an unnecessary jQuery object 
    $(this).closest('.block').find('span.likes').text(this.value); 
} else { 
    // ... 
} 

http://jsfiddle.net/Ud9T4/

相關問題