2010-05-08 4 views
5

मैं सही दिशा में एक अच्छा धक्का पाने की उम्मीद कर रहा था, मैं अपनी छवियों स्रोत स्ट्रिंग को समाप्त करना चाहता हूं ... i उम्मीद है कि मैंने सही कहा है।छवियों के एक सेट के लिए jquery का उपयोग करके _m से _t के साथ समाप्त होने से img src string को बदलने के लिए

वैसे भी मेरे वर्तमान src के पढ़ रहे हैं:

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

मैं करने के लिए इसे बदलने के लिए करना चाहते हैं:

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

किसी भी विचार लोग ... धन्यवाद!

उत्तर

10

यह एक थोड़ा सुरक्षित है:

$('img').each(function() { 
    var src = $(this).attr('src'); 
    $(this).attr('src', src.replace(/_m(\.[^.]+)?$/, '_t$1'); 
}); 
वरना आप का उपयोग करते समय /bat_tan/images/oh_my_god_m.png के रूप में समाप्त करने के लिए यूआरएल /bat_man/images/oh_my_god_m.png तरह का जोखिम हो सकता

eKek0 का जवाब। regex /_m(\.[^.]+)?$/ की


स्पष्टीकरण:

  • /.../ सिर्फ पैटर्न सीमाओं कर रहे हैं।
  • _m अक्षरों _m से मेल खाता है।
  • (...) मिलान समूह, पहला परिणाम $1 के परिणामस्वरूप समाप्त होता है।
  • \. अक्षरों . से मेल खाता है। चूंकि . रेगेक्स में एक विशेष char है, यह \ से बच निकला है।
  • [...] वर्णों के समूह का प्रतिनिधित्व करता है।
  • ^. सबकुछ से मेल खाता है लेकिन शाब्दिक .। क्योंकि यह एक समूह के अंदर है, भागने की जरूरत नहीं है।
  • + एक या अधिक वर्णों से मेल खाता है।
  • ? पिछला समूह वैकल्पिक है (इस मामले के लिए कि कोई फ़ाइल एक्सटेंशन नहीं है)।
  • $ मिलान स्ट्रिंग के अंत में होना चाहिए (और इस प्रकार मध्य में नहीं)।
+0

आप attr पर एक बंद ब्रैकेट खो रहे हैं – thethakuri

0

img.src = "<image source>"; जहां img चर इस तरह डोम से खोजा गया है: document.getElementByTagName('img')[0] या इस: document.getElementById('image') (<img id="image" /> हैं), यह करने के लिए HTML डोम बारे में जानें।

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

क्या होगा यदि यूआरएल '/ bat_man/छवियों है/oh_my_god_m.png'? – 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

मैं इसे परीक्षण नहीं किया है, लेकिन इस काम करना चाहिए:

$('img').each(function() { 
    var src = $(this).attr('src'); 
    $(this).attr('src', src.replace(/_m\.(png|jpg|jpeg|gif)$/, '_t.$1')); 
}); 
संबंधित मुद्दे