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 に答える