IT story

jquery, id 내의 클래스 선택자

hot-time 2020. 9. 15. 19:21
반응형

jquery, id 내의 클래스 선택자


아래에서 요소 my_class내에서 클래스를 포함하는 요소를 어떻게 선택해야 id = "my_id"합니까?

요소에는 내가 선택하지 않는 다른 클래스가있을 수도 있습니다.

<div id = "my_id">
    <span class = "my_class hidden">hi</span>
    <span class = "my_class">hello</span>
</div>

노력 중이었다

$("#my_id [class*=my_class ]")

하위 선택기 와 함께 클래스 선택기사용할 수 있습니다.

$("#my_id .my_class")

일반 ol '클래스 선택기를 사용하십시오.

$('#my_id .my_class')

요소에 다른 클래스도 있는지 여부는 중요하지 않습니다. 그것은이 .my_class의 클래스를 내부 그것의 어딘가에 #my_id 는 그 선택과 일치합니다 그래서.

성능에 대하여

jQuery 선택기 성능 문서 에 따르면 다음과 같이 두 개의 선택기를 개별적으로 사용하는 것이 더 빠릅니다.

$('#my_id').find('.my_class')

문서의 관련 부분은 다음과 같습니다.

ID 기반 선택기

// Fast:
$( "#container div.robotarm" );

// Super-fast:
$( "#container" ).find( "div.robotarm" );

.find()ID 전용 선택을 사용하여 처리됩니다 - 첫 번째 선택이 지글 지글 셀렉터 엔진을 거치지 않고 처리되기 때문에 접근이 빠르다 document.getElementById()는 브라우저에 기본 때문에 매우 빠른이다.

ID별로 또는 클래스별로선택하면 (다른 것들 중에서) document.getElementById()매우 빠른 브라우저 제공 함수가 호출되는 반면, 하위 선택기를 사용하면 언급 된대로 Sizzle 엔진이 호출되며 이는 빠르지 만 제안 된 대안보다 느립니다.


항상 사용

//Super Fast
$('#my_id').find('.my_class'); 

대신에

// Fast:
$('#my_id .my_class');

JQuery 성능 규칙을 살펴보십시오 .

또한 Jquery Doc에서


<span class = "my_class">hello</span>이 요소 만 선택해달라고 요청하신 것 같습니다. 이렇게하셨습니다. 질문을 올바르게 이해했다면 이것이 답입니다.

$("#my_id [class='my_class']").addClass('test');

DEMO


또한 다음 $( "#container" ).find( "div.robotarm" );
과 같습니다.$( "div.robotarm", "#container" )

참고 URL : https://stackoverflow.com/questions/17417614/jquery-selector-for-class-within-id

반응형