2010-05-08 1 views
5

올바른 방향으로 멋진 푸시를 얻고 싶습니다. 이미지 소스 문자열의 끝을 변경하고 싶습니다 ... i 나는 그 말이 맞다는 것을 희망한다.이미지 세트에 대해 jquery를 사용하여 _m에서 _t까지 img src 문자열을 변경하는 방법

어쨌든 내 현재의 src의 독서됩니다

<img src="something/something/12345_m.jpg" /> 

내가 그것을 변경하려면 :

<img src="something/something/12345_t.jpg" /> 

어떤 생각들을 ... 감사합니다! img 변수가이 같은 DOM에서 검색됩니다

답변

10

:

그밖에 사용할 때 /bat_tan/images/oh_my_god_m.png로 결국 URL의 /bat_man/images/oh_my_god_m.png 같은 위험을 감수 할 수
$('img').each(function() { 
    var src = $(this).attr('src'); 
    $(this).attr('src', src.replace(/_m(\.[^.]+)?$/, '_t$1'); 
}); 

eKek0의 대답. 정규식 /_m(\.[^.]+)?$/


설명 :

  • /.../ 그냥 패턴 테두리입니다.
  • _m_m과 일치합니다.
  • (...)과 일치하는 그룹 중 첫 번째 그룹은 결과로 $1으로 끝납니다.
  • \..과 일치합니다. .은 정규식의 특수 문자이므로 \으로 이스 케이 핑됩니다.
  • [...]은 문자 그룹을 나타냅니다.
  • ^.은 모두 이지만 문자는 .과 일치합니다. 그룹 내에 있기 때문에 탈출 할 필요가 없습니다.
  • +은 하나 이상의 문자와 일치합니다.
  • ? 이전 그룹은 선택 사항입니다 (파일 확장자가없는 경우).
  • $ 문자열의 끝에서 일치가 발생해야합니다 (따라서 중간 정도가 아닙니다).
+0

attr에 닫는 괄호가 없습니다. – thethakuri

0

img.src = "<image source>"; : document.getElementByTagName('img')[0] 나이 : document.getElementById('image') (<img id="image" /> 경우)을 할 수있는 HTML의 DOM에 대해 알아보세요.

1
$(img).each(function() { 
    var src = $(this).attr('src'); 
    $(this).attr('src', src.replace("_m", "_t"); 
}); 
+4

경우는 어떻게? – BalusC

1

이 하나에 jQuery를 필요 없음 :이 하나가 조금 더 안전

function argsToArray(args) { 
    var r = []; for (var i = 0; i < args.length; i++) 
    r.push(args[i]); 
    return r; 
} 
argsToArray(document.getElementsByTagName('img')).forEach(function(img) { 
    img.src = img.src.split('_m').join('_t'); 
}); 
0

나는 그것을 테스트하지 않은,하지만이 작동합니다 : URL이 oh_my_god_m.png` /`/ bat_man/이미지입니다

$('img').each(function() { 
    var src = $(this).attr('src'); 
    $(this).attr('src', src.replace(/_m\.(png|jpg|jpeg|gif)$/, '_t.$1')); 
}); 
관련 문제