2013-07-22 9 views
0

Я хочу заменить все строки «replace» на определенную строку, используя 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, это работает! Почему вы используете внешнийHTML? – 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

Смежные вопросы