두 원소가 동일한지 여부 검정
처음에는 이것이 효과가 있을 것으로 생각합니다.
if ($('#element') == $('#element')) alert('hello');
하지만 그렇지 않습니다.요소가 동일한지 여부를 어떻게 테스트합니까?
jquery 1.6에서 이제 간단하게 할 수 있는 일은 다음과 같습니다.
$element1.is($element2)
이렇게 하면 됩니다.
if ($(this)[0] === $(this)[0]) alert('hello');
그래서 이것은
if (openActivity[0] == $(this)[0]) alert('hello');
아니면 그냥
if (openActivity[0] == this) alert('hello');
(새 jQuery 인스턴스 없음 ;-)
이미 누군가가 말했듯이, 두 개의 다른 순간으로 둘러싸인 동일한 HTML 요소는 두 개의 다른 jQuery 인스턴스를 생성하므로 절대 동일할 수 없습니다.
대신, 동일한 HTML 요소일 경우 메모리 위치가 동일하기 때문에 랩핑된 HTML 요소를 비교할 수 있습니다.
var LIs = $('#myUL LI');
var $match = $('#myUL').find('LI:first');
alert(LIs.eq(0) === $match); // false
alert(LIs.get(0) === $match.get(0)) // TRUE! yeah :)
안부 전합니다!
나는 열린 상태를 표시하기 위해 addClass()를 사용할 것이고 당신은 그것을 쉽게 확인할 수 있습니다.
9년 후 jQuery 없이
두 요소가 같은 경우 두 요소의 포인터가 같아야 합니다.따라서,
document.body === document.body // true
document.querySelector('div') === document.querySelector('div') // true
document.createElement('div') === document.createElement('div') // false
실키나 산티가 말했듯이, 독특한 ID나 클래스가 테스트하는 가장 쉬운 방법일 것입니다.if 문이 예상대로 작동하지 않는 이유는 두 개체를 비교하고 메모리에서 동일한 개체인지 확인하는 것이기 때문입니다.
$(이것)에 의해 생성되는 것은 항상 새로운 객체이기 때문에, 그들은 결코 서로 동등할 수 없습니다.그렇기 때문에 물체의 특성을 테스트해야 합니다.각 openActivity 요소가 테스트할 수 있는 다른 콘텐츠를 가질 수 있도록 보장되는 경우 고유한 ID/클래스 없이 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/1269926/test-if-two-elements-are-the-same
'source' 카테고리의 다른 글
MySQL--필드 목록의 알 수 없는 열 (0) | 2023.08.26 |
---|---|
비 PowerShell 명령의 출력을 억제하시겠습니까? (0) | 2023.08.26 |
Reactjs, nodejs 및 maria가 포함된 로그인 페이지DB (0) | 2023.08.26 |
C 매크로: #if 동일성 확인 (0) | 2023.08.26 |
mariadb-server는 mysql-community-server에 의해 사용되지 않습니다. (0) | 2023.08.26 |