2013-08-04 1 views
0

문제를 해결하는 데 도움주세요스타일 속성의 규칙 중 하나를 선택

페이지에 몇 가지가 있습니다. 일부는 내가 그 누구의 플로트 IMG 만 선택 JS 또는 JQuery와하고 싶은, 일부는

style="line-height: 1.538em; float: left;" 

속성 한 속성

style="line-height: 1.538em; float: right;" 

에게 있습니다 : 오른쪽;

이 모드에서는
+3

를 시도? –

+0

당신은 정말로 그렇게하고 싶지 않고 매우 느린 선택 자일 것입니다. 그들에게 수업을 제공하고 수업을 선택하는 방법을 찾으십시오. – Martijn

+2

저는 이것을 다음과 같이 쓰려고합니다 : 사람들이 할당 할 일 :'if ($ (this) .css ('float') === "왼쪽")'. 더 나은 해결책은'if (this.style.cssFloat == 'left')'입니다. 이것은 성능 향상을 위해 더 좋으며 jQuery가 각 항목을 선택하고 그것들을 통해 루프를 반복하는 것보다 – Martijn

답변

2

에게 당신이 루프 당신의 DOM 내부의 각각의 이미지와 CSS로 요소 만 이미지 검색 :

$('img').each(function(index){ 
    if(this.style.cssFloat =='left'){ 
    //your code here 
    } 
}); 
+2

'this.style.cssFloat == 'left'' 제안, jQuery를 선택하는 것보다 빠르다. – Martijn

1

약간 까다로운,하지만 난 같은 것을 시도 할 것이다 : float:left 이 시도

$('img').each(function() { 
    if ($(this).css('float') === "left") { 
    //my stuff 
    } 
}); 

그런 다음 다시 원하는 클래스에 맞춤 클래스를 제공하는 것이 좋습니다.

1

당신이 사용할 수있는 "attribute contains" selector (*=) :

하지 않습니다 (그러나 그것은 아주 섬세한 보인다 느려질 수 있습니다
var imgs = $('img[style*="float: right"], img[style*="float:right"]'); 

(이 하나의 공간이되고, 여부에 대해 내가 허용 한 참고.) 한 번 해보면 정말 중요합니다. 많은 일을한다면 중요 할 수도 있습니다.) 대신 관련 이미지에 클래스를 추가 할 것입니다. 그러나 현대의 브라우저에서는 each 루프보다 더 빠를 것입니다. JavaScript 코드가 아니라 브라우저의 선택기 엔진에서 작업을 수행 할 수 있기 때문에 다른 답변이 제안하는 것입니다.

실제 img 태그의 태그의 내용이 style 인 경우에만 일치합니다.

-1

는`("img_left.") 다음은`$만큼 간단하다 당신은 단순히 각 이미지에 대해 서로 다른 클래스를 사용할 수 없습니다, 나는 그런 선택이 존재 생각하지 않는다 $('img[style*="float:left"]')