Reputation: 1652
I have a list of elements:
var checked_inputs = $('.select-feedback:checked');
Now i want to get their closest division element whose class is 'MessageRow'. I have done this trick to get it:
$('.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();
}
})
})
Is there any better way to accomplish this? Or is this a good way? Thanks in advance.
Upvotes: 1
Views: 115
Reputation: 21911
Your way is a little bit complicated - imho...
$('.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();
}
});
})
Upvotes: 1