[jquery] $ .each (selector)와 $ (selector) .each ()의 차이점은 무엇입니까?
이것의 차이점은 무엇입니까?
$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
이:
$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
선택되고 실행되는 테이블 셀의 html은 다음과 같습니다.
<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
jQuery 문서를 살펴 보았지만 여전히 차이점을 이해하지 못합니다. (저입니까, 아니면 그 문서가 내용의 명확성에서 때때로 약간 “모호한”것입니까?)
추가 정보 :
분명히 내 시도는 일반적인 예가 사람들을 혼란스럽게 만드는 것입니다! 첫 번째 예에서 (이전) 누락 된 괄호와 함께. 🙁
첫 번째 예제는 체크 박스가있는 모든 행에 대해 <tbody>를 제거하는 코드 줄에서 나옵니다.
$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
두 번째 예제는 #classesTable에서 선택된 확인란을 살펴보고 드롭 다운에서 일치하는 항목을 제거하는 상황에서 비롯됩니다.
$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
$('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
나는 그들이 두 가지 다른 일을한다는 것을 이해하지만, “이 경우에는 $ .each ()를 사용하고 다른 경우에는 .each (function () {})를 사용해야합니다.
그것들은 전혀 바꿔 사용할 수 있습니까? 어떤 경우에만? 못?
답변
기술:
.each
는 jQuery 객체 컬렉션 만 반복하는 데 사용되는 반복기이며jQuery.each
($.each
)는 JavaScript 객체 및 배열을 반복하는 일반 함수입니다.
예
1) 기능 사용$.each()
var 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
2) 사용 .each()
방법
$('#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
자원
답변
에서 http://api.jquery.com/jQuery.each :
$ .each () 함수는 jQuery 객체를 독점적으로 반복하는 데 사용되는 .each ()와 동일하지 않습니다. $ .each () 함수는 맵 (JavaScript 객체)이든 배열이든 모든 컬렉션을 반복하는 데 사용할 수 있습니다.
답변
$.each
요소가 아닌 배열과 함께 실제로 사용하고 싶습니다 . 즉 :
var x = ["test", "test2"];
당신 $.each(x...
은 대신 그것을 횡단하는 데 사용 합니다 x.each
🙂
.each
요소 전용입니다. 🙂
답변
기능적 차이는 없습니다. 모든 jQuery 객체는.each()
에서 상속 방법을 jQuery.fn
. this를 호출함으로써 object method
jQuery는 Array (-like object)
반복 할 대상 을 이미 알고 있습니다. 즉, indexed propertys
현재 jQuery 객체에서 반복 됩니다.
$.each()
반면에 모든 종류의 Array
또는 을 반복하는 “도우미 도구”일뿐 Object
입니다. 물론 반복 할 대상을 해당 메서드에 알려야합니다.
또한 배열이나 객체를 전달하든 상관없이 a for-in
또는 for loop
후드 아래에서 올바른 작업을 수행합니다 .
답변
첫 번째는 전달한 컬렉션의 요소에 대해 콜백 함수를 실행하지만 코드는 현재 구문 상 정확하지 않습니다.
그것은해야한다:
$.each($('#myTable input[name="deleteItem[]"]:checked'), do_something);
참조 : http://api.jquery.com/jQuery.each/
두 번째는 실행중인 컬렉션의 각 요소에서 함수를 실행합니다.
답변
첫 번째 경우에는 여기에 표시된대로 jQuery 객체 및 기타 배열 항목을 반복 할 수 있습니다.
두 번째 경우에는 여기에 표시된대로 jQuery 객체에 대해서만 itterate 할 수 있습니다.
답변
내가 이해 $.each();
하는 바에서 객체 또는 배열을 반복하고 각 항목의 반복자와 값을 제공합니다.
$().each();
jQuery 객체 목록을 반복하고 반복기와 jQuery 객체를 제공합니다.