What is the difference between this:
$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
and this:
$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
The html for the table cell that is being selected and acted upon looks like this:
<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
I've gone over the jQuery documentation, but I still don't understand the difference. (Is it me or is that documentation sometimes slightly "nebulous" in clarity of content?)
Added Info:
Apparently my attempt a generic examples is confusing people! Along with the (previously) missing parenthesis in the first example. :(
The first example comes from a line in my code that removes the <tbody> for any rows with a checkbox that is checked:
$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
The second example comes from a situation where I look through the #classesTable for any checked checkboxes and remove its matching item in a dropdown.
$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
$('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
I understand that they do two different things, but not to the point that I'd be able to say "I need to use $.each() in this case and .each(function() {}) in another case.
Are they interchangeable at all? Only in some cases? Never?
Description:
.each
is an iterator that is used to iterate over only jQuery objects collection whilejQuery.each
($.each
) is a general function for iterating over JavaScript objects and arrays.
$.each()
functionvar myArray = [10,20,30];
$.each( myArray, function(index, value) {
console.log('element at index ' + index + ' is ' + value);
});
//Output
element at index 0 is 10
element at index 1 is 20
element at index 2 is 30
.each()
method$('#dv').children().each(function(index, element) {
console.log('element at index ' + index + 'is ' + (this.tagName));
console.log('current element as dom object:' + element);
console.log('current element as jQuery object:' + $(this));
});
//Output
element at index 0 is input
element at index 1 is p
element at index 2 is span