2013-07-22 69 views
0

我想用jquery替換所有使用特定字符串的「替換」字符串,同時保留所有擴展名(.jpg,.mp4,...)。這裏是我的嘗試:替換html內容中的多個字符串

<video id="test" controls="controls" poster="replace.jpg" width="640" height="360"> 
    <source src="replace.mp4" type="video/mp4" /> 
    <source src="replace.webm" type="video/webm" /> 
    <source src="replace.ogg" type="video/ogg" /> 
    <object type="application/x-shockwave-flash"  data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" width="640" height="360"> 
     <param name="movie" value="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" /> 
     <param name="allowFullScreen" value="true" /> 
     <param name="wmode" value="transparent" /> 
     <param name="flashVars" value="config={'playlist':['replace.jpg',{'url':'replace.mp4','autoPlay':false}]}" /> 
     <img alt="Test Video" src="replace.jpg" width="640" height="360" title="No video playback capabilities, please use a better browser." /> 
    </object> 
    </video> 

和腳本:

var src = "content/test"; 
$("#test").replace(/replace/g , src); 

回答

0

使用,來代替:

DEMO

$("#test").replaceWith(function(){ 
    return this.outerHTML.replace(/replace/g , src); 
}); 
+0

thx,那有效! 爲什麼使用outerHTML? – FLuttenb

+0

否則屬性容器將不會被替換,在這裏:'poster =「replace.jpg」' –

+0

加上我的瀏覽器仍然給我一些錯誤,因爲它試圖加載replace.jpg,replace.mp4,...文件第一。有什麼辦法可以避免這種情況? – FLuttenb

0

你需要這個 -

$("#test").html(function(_,htm){ 
    return htm.replace(/replace/g , src); 
}); 
+0

thx也有效!你爲什麼使用_符號? – FLuttenb

+0

@FLuttenb'.html(function(index,oldhtml))'是按照api應該是什麼,但我們可以使用任何名稱代替這個名稱,因爲我使用'_'來代替索引。 –

+0

好吧,thx爲您的答案! – FLuttenb