1

我有一个元素列表:

var checked_inputs = $('.select-feedback:checked');

现在我想得到他们最接近的划分元素,其类是'MessageRow'。我已经做了这个技巧来得到它:

    $('.radiusRight').click(function(event) {
    event.preventDefault();
    var feedbacks = new Array();
    var checked_inputs = $('.select-feedback:checked');
    for (var i=0; i<checked_inputs.length; i++) {
        feedbacks.push($(checked_inputs[i]).closest('.messageRow').attr('id'));
    }
    var feedback_ids = feedbacks.map(function(val) { return val.split('-')[1] });
    var feedback_divs = feedbacks.map(function(val) { return '#' + val }).join(',');
    $.ajax({
        url: '/business/feedback/delete/',
        type: 'POST',
        data: {'ids': feedback_ids},
        success: function(data) {
            $(feedback_divs).fadeOut();
        }
    })
})

有没有更好的方法来实现这一点?或者这是一个好方法?提前致谢。

4

1 回答 1

1

你的方式有点复杂 - 恕我直言......

$('.radiusRight').click(function(event) {
    event.preventDefault();

    var feedback_ids = $(".select-feedback:checked").map(function() {
        var id = $(this).closest(".messageRow").attr("id");
        return id.split("-")[1];
    });

    $.ajax({
        url: "/business/feedback/delete",
        type: "POST",
        data { "ids": feedback_ids },
        success: function() {
        $("#" + feedback_ids.join(", #")).fadeOut();
        }
    });
})
于 2012-08-19T14:14:45.003 回答