개체가 jQuery에서 .each()를 사용할 수있는 컬렉션인지 테스트하는 방법은 무엇입니까?개체가 jQuery에서 .each()를 받아 들일 수있는 컬렉션인지 테스트하는 방법은 무엇입니까?
미리 감사드립니다.
개체가 jQuery에서 .each()를 사용할 수있는 컬렉션인지 테스트하는 방법은 무엇입니까?개체가 jQuery에서 .each()를 받아 들일 수있는 컬렉션인지 테스트하는 방법은 무엇입니까?
미리 감사드립니다.
그냥 테스트 객체 each
을 가지고, 또는 그것의 경우 object
경우 :
if (obj) {
if (typeof obj.each == 'function') {
obj.each(function(i,e) { ... });
} else if (typeof obj == 'object') {
$.each(obj, function(i,e) { ... });
} else {
//alert("not a valid collection");
}
} else {
//alert("obj is null");
}
많은 어떤 요구, each
더 검증을 만들기 위해이 아니다 나머지는 다룰 것입니다.
'if'가 좀 엉망입니다. obj.each를 진실성에 대해 테스트 할 필요는 없지만 obj를 역 참조하기 전에 테스트하는 것이 좋습니다. – Malvolio
'} else if (obj.length) {''obj'가 함수라면? 함수도'.length' 속성을 가지고 있습니다. length (3)'obj'가 유효한 콜렉션이지만'.length'가'0'이면,'alert() '라는 말을 얻을 것입니다. (function (a, b, c) {}) 유효하지 않습니다. – user113716
@patrick,'obj.length'가 0이면 true, 경고가 발생합니다. 대답을 수정하십시오 –
jQuery 객체 인 경우 요소가 없어도 항상 .each
메서드를 사용할 수 있습니다. jQuery 오브젝트가 비어 있으면 그냥 루프를 입력하지 않습니다, 그래서 빈의 jQuery 객체에 .each
전화 무해 :
obj.each(function(){ ... });
당신이 jQuery를 개체의 모든 항목이 있는지 확인하려면
, 당신이 할 수있는length
속성을 사용하십시오.
당신은 루프 $.each
을 사용할 수 있습니다 : 당신이 객체가 배열 인 경우는 $.each
방법으로 사용할 수 있도록 확인하려면
if (obj.length > 0) {
...
}
, 당신은 $.isArray
방법을 사용할 수 있습니다 모든 객체의 속성.
if ($.isPlainObject(obj)) {
$.each(obj, function(key, value){ ... });
}
내가 당신을 생각 :
당신은 객체가
new Object()
또는 리터럴{ ... }
객체를 사용하여 생성 할 것인지를 결정하기 위하여isPlainObject
방법을 사용할 수 있습니다 : 어떤 특성이 있는지 당신은 확인하기 위해isEmptyObject
을 사용할 수 있습니다 귀하의 질문을 명확히해야합니다. '.each()'를 호출하면 jQuery 객체에 대해서만 호출 할 수 있습니다. 즉, 콜렉션이 비어 있더라도 항상 호출 할 수 있습니다. 정말로'$ .each()'에 대해 묻고 있습니까? – user113716