그래서 두 개의 jQuery 객체를 비교하여 부모 요소가 페이지 본문인지 확인하는 방법을 알아 보려고합니다. jQuery 객체를 어떻게 비교합니까?
if ($(this).parent() === $('body')) ...
내가이 잘못 알고 있지만, 아무도 내가에서 얻고 무엇을 이해하면, 그들이이 일을 올바른 방법으로 날 지점 수 : 여기
내가 가진 무엇인가?
그래서 두 개의 jQuery 객체를 비교하여 부모 요소가 페이지 본문인지 확인하는 방법을 알아 보려고합니다. jQuery 객체를 어떻게 비교합니까?
if ($(this).parent() === $('body')) ...
내가이 잘못 알고 있지만, 아무도 내가에서 얻고 무엇을 이해하면, 그들이이 일을 올바른 방법으로 날 지점 수 : 여기
내가 가진 무엇인가?
당신은 예컨대 : 원시 DOM 요소를 비교해야
if ($(this).parent().get(0) === $('body').get(0))
또는
if ($(this).parent()[0] === $('body')[0])
왜 :
if ($(this).parent().is("body")) {
...
}
?
아니면'if ($ (this) .parent(). is ($ ("body"))) – dieend
루프가 필요하지 않으므로 단일 첫 번째 노드를 테스트 할 필요가 없습니다. 동일한 길이이고 동일한 노드를 공유하는 것 이외에는 아무 것도 필요하지 않습니다. 다음은 작은 코드 단편입니다. 자신의 용도로 jquery 플러그인으로 변환 할 수도 있습니다.
jQuery(function($) {
// Two separate jQuery references
var divs = $("div");
var divs2 = $("div");
// They are equal
if (divs.length == divs2.length && divs.length == divs.filter(divs2).length) {
// They are not
} else {}
});
다음 div가 동일하지 않습니까? '
아니요, 필터는 동일하지 않은 DOM 요소를 전달하지 않습니다. – tbranyen
나는이 답변을 발견하고 어떤 것이 더 좋은지 궁금해했습니다. 모두 귀하의 필요에 따라 다르지만 가장 쉽게 입력하고 읽고 실행할 수 있습니다. 여기 제가 결정을 내리려고 만든 perf 테스트 케이스가 있습니다.
날 가장 빠른 DOM 엘리먼트 2 처리 : 다른 모든보고 된 브라우저에서도 동일하게 보입니다. –
바로 첫 번째 것과 동일하지만 javascript의 기본 배열 구문 분석을 사용합니다. – Salketer
'var에 $ 부모 = $ (이) .parent(), $ 바디 = $ ('몸');' 'var에 theSame = $ parent.is ($ 본체),' HTTP : //api.jquery.com/is/#is-jQuery-object – Victor
$ (this) .parent(). is ($ ('body')); // 또는 '$ body'이외의 다른 항목이 있는지 확인하십시오. http://stackoverflow.com/a/6986013/112100 – Omu