문제

선택기가 있습니다. "td > a.leftmenuitem:last, div > a.leftmenuitem:last", 조금 단순화하고 싶습니다. 나는 시도했습니다."* > a.leftmenuitem:last", "td, div > a.leftmenuitem:last", 그리고 "(td, div) > a.leftmenuitem:last", 첫 번째 선택기의 방식으로 작동하지 않습니다. 각각의 별도의 선택기를 만들지 않고 선택기 구문에서 이런 종류의 일이 불가능합니까?

도움이 되었습니까?

해결책

단순화 할 수 없습니다.

td > a.leftmenuitem:last, div > a.leftmenuitem:last

공통점이 없으면 하나의 표현식으로 모든 관련 TD 및 DIV 요소를 선택할 수 있습니다. 예를 들어, 둘 다 클래스 블라를 가지고 있다면 당신은 할 수 있습니다.

.blah > a.leftmenuitem:last

그러나 피할 수 있다면 이런 종류의 표현을 사용하지 마십시오. 클래스 선택기는 느린다 (ID 및 태그 선택기와 비교).

그냥 문제가 있습니까?

a.leftmenuitem:last

?

그건 그렇고, 당신은 확실합니까? :last 올바른 선택입니까? 많은 사람들이 실수로 그것을 사용하여 착각했습니다. :last-child. :last 페이지에있는 마지막 일치하는 요소 인 하나의 요소 만 일치합니다.

다른 팁

더 큰 것은 때로는 더 빠릅니다. 당신이 사용할 때 * 대신에 TD, 당신의 쿼리는 훨씬 느립니다.

나는 당신이 그것을 단순화 할 수 있다고 생각하지 않습니다. 대신 고유 한 클래스에 관심이있는 링크를 제공하기로 선택했습니다. "a.<my-unique-class>:last". 그렇게하면 jQuery는 단순히 모든 일치를 스캔 할 수 있습니다 <a> 부모가 걱정하지 않고 태그 <td> 요소.

선택기는 충분히 간단합니다. 단순화하려면 다음과 같은 작업을 수행 할 수 있습니다.

$('a.leftmenuitem:last').parent().doWhateverYouWereGoingToDo();

그러나 이것이 더 빠른 실행 시간을 초래할 것이라고 의심합니다.

어쩌면 나는 단지 혼란 스러울 수도 있지만

* > a.leftmenuitem:last

당신을 위해 일할 것입니다. 그러면 왜 함께 가지 않겠습니까?

a.leftmenuitem:last

대신에?

당신이 사용하는 선택기는 IS입니다

Parent > Child 

지정된 모든 자식 요소와 일치합니다 Child 에 의해 지정된 요소의 Parent. 사용하지 않는 한 <a> 자녀가 아닌 페이지의 다른 곳에서 요소 <div> 그리고 <td> 요소, 왜 사용하지 않는가

$('a.leftmenuitem:last')

내가 뭔가를 놓치고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top