-1

我有一个带有复选框的组,我试图在选中时获取每个复选框的值,并将该值附加到我旁边的计数器跨度元素,但每次我点击任何复选框时都会附加所有计数器元素的值。我创建了一个http://jsfiddle.net/creativestudio/xm838/

这是我正在使用的 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();
4

1 回答 1

1

那是因为您正在选择所有具有 class of 的元素likes,您可以使用prevand findorclosest方法来选择目标元素。

$(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/

于 2012-12-01T22:03:56.550 回答