jquery
2012-03-09 2 views 0 likes 
0

filename_mov.jpg과 같은 파일 이름을 가진 사이트에 여러 이미지가 있습니다. filename 부분은 동적으로 생성되는 부분입니다 (예 : 123456abc_mov.jpg).jQuery로 파일 이름의 일부로 이미지를 타겟팅하는 방법

_mov.jpg은 일관성있는 유일한 것이므로 파일 이름의 일부를 검색하여 대상을 원합니다.

jQuery를 사용하여 이것을 검색 할 수 있습니까?

$("img[src*='_mov.jpg']").addClass('movieThumb'); 

을하지만 그것은 작동하지 않습니다

은 내가 시도했습니다.

+0

무엇 잘 작동합니다이 - 그것을하지 않는 이유 너를 위해 일해? –

+0

정규식이있는 선택기가 필요합니다 (http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions). 그러나 모든 이미지를 반복하고 src 속성 값을 확인하는 것이 더 좋을 수도 있습니다. – scibuff

+3

"작동하지 않는가?" 선택기가 잘 보이고 다음 URL로 이미지를 선택합니다. http://jsfiddle.net/j6cc2/ –

답변

2

사용 the “attribute ends with” selector :

$('img[src$="_mov.jpg"]').addClass('movieThumb'); 

또는 당신이 할 수있는 jQuery#filter() 사용하여 자신을 필터링 :

$('img').filter(function() { 
    return /_mov\.jpg$/.test(this.src); 
}).addClass('movieThumb'); 
+0

필자는이 필터를 사용하게되었습니다. 당신의 답변에 감사드립니다. – JayDee

0

나는 <img class="mov_image" src="...._mov.jpg">처럼 특정 CSS 클래스를 추가하는 게 좋을 것, 복잡한 선택기 만지작 방지하려면 :

$('.mov_image').addClass('movieThumb'); 
+1

클래스를 추가하여 클래스를 추가해야하는 요소를 식별하는 것은 끝이없는 작업입니다. – Christian

+0

이것은 [CSS 클래스를 사용하여 의미 체계를 제공하는] (http://code.google.com/apis/checkout/developer/Google_Checkout_Shopping_Cart_Annotating_Products.html) ([여기는 또 하나입니다] (http : // microformats .org/2005/10/19/more-than-styling)). –

1
$('img').each(function(){ 

    var src = $(this).attr('src'); 
    if(src.indexOf('_mov') != -1) 
     //do stuff 
}); 

확실하지 얼마나 잘하지만 IE에서 문자열에 같이 IndexOf 작동합니다.

+1

'$ ("img [src * = '_ mov.jpg']")'잘 작동 할 것입니다. 작동하지 않는다면 당신도 할 수 없습니다. 하지만 네,'indexOf'는 IE의 문자열에서도 작동합니다. * 편집 : * 귀하의 코드가 실제로 올바르지 않습니다. 'indexOf'가'-1 '을 반환하면 부분 문자열을 찾을 수 없으므로'true '를 반환합니다. 아마 모든 이미지에 사실 일 것입니다. 당신은'-1'과 비교해야합니다 :'if (this.src.indexOf (...)> -1)'. –

1

사용에게 $.filter

$('img') 
    .filter(function() { 
     return this.src.match(/_mov\.jpg$/); 
    }) 
.addClass('movieThumb'); 
; 
+2

'.'을 이스케이프 처리 할 필요가 없습니까? '/ _mov \ .jpg $ /' –

+0

... 물론; 고마워 – scibuff

관련 문제