[jquery] jQuery 선택기에서 선행 콜론의 목적은 무엇입니까?

저는 Wijmo 툴킷을 사용하기 시작했으며 설명서 페이지에서 이와 유사한 몇 가지 예제 선택기를 발견했습니다.

$(":input[type='radio']").wijradio();

나는 다음과 같이 썼을 것입니다.

$('input[type=radio]').wijradio();

이것들이 똑같습니까 아니면 내가 놓친 것이 있습니까?

위의 두 가지 차이점이 있습니다. 첫 번째 선택자는 콜론으로 시작하고 입력 유형에 대한 따옴표가 있습니다.



답변

:inputA는 jQuery를 확장 하면서 inputCSS의 선택이다는.

textarea, buttonselect요소는 전자와 일치하지만 후자는 일치하지 않습니다.

후자는 더 빠르므로 특정 radio예에 사용하십시오 . :input엄격하게 <input>태그 가 아니더라도 “모든 양식 요소”를 원할 때 사용 합니다. 이 경우에도 표준 CSS 선택기를 먼저 사용한 다음 .filter(':input')해당 세트 에서 사용하는 것이 좋습니다 .

: input은 CSS 사양의 일부가 아닌 jQuery 확장이므로 : input을 사용하는 쿼리는 기본 DOM querySelectorAll () 메서드에서 제공하는 성능 향상을 활용할 수 없습니다. : input을 사용하여 요소를 선택할 때 최상의 성능을 얻으려면 먼저 순수한 CSS 선택기를 사용하여 요소를 선택한 다음 .filter ( “: input”)을 사용하십시오.

1.7.2 소스에서 : input 필터는 nodeName에 대해 정규식을 테스트합니다.

input: function( elem ) {
            return (/input|select|textarea|button/i).test( elem.nodeName );
},


답변

$("input")선택은 타입 입력의 요소를 선택합니다

그동안 $(":input")선택기는 모든 입력 요소 잡을 (등과 텍스트 영역, 선택 입력 등을 …)

자세한 내용은 다음 위치에서 :input선택기에 대한 jQuery 공식 문서를 참조하십시오 .

http://api.jquery.com/input-selector/


답변

:input선택기는 기본적으로 모든 선택 form제어 (입력 텍스트 영역, 선택 버튼 요소) 어디에 input선택기 선택 태그 이름의 모든 요소 input.

라디오 버튼은 form요소이고 input태그를 사용 하므로 둘 다 라디오 버튼을 선택하는 데 사용할 수 있습니다. 그러나 두 접근 방식 모두 요소를 찾는 방식이 다르므로 각각 성능 이점이 다릅니다.


답변