Замена параметра
Пытаюсь найти все элементы по наличию в значении параметра, затем заменить это значение и поместить назад. Другими словами заменить все найденные значения. Относительные ссылки на прямые.
$('img[src^="../"]').attr('src', function (){
var fsrc = $(this).replace('../','http://www.site.com/');
alert(fsrc);
return fsrc;
});
|
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<div id=My>
<img src="/i/blank.gif"/>
<img src="./i/blank.gif"/>
<img src="../i/blank.gif"/>
<img src="http://lookatcode.com/i/blank.gif">
</div>
<script>
var N_Zmen=0;
$('img[src^="../"],img[src^="./"],img[src^="/"]').each(function (i){
this.src = this.src;
N_Zmen++;
});
alert( N_Zmen+'\n'+$("#My").html())
</script>
|
Это работает только когда картинки и так загрузились. А как поступить если они по относительным ссылкам не загружаются и надо перецепить их явно, может даже на другой ресурс?
Такое получается из-за фреймов, относительный путь ведёт не туда, начинается белиберда. P.S. мопед с фреймами не мой, я просто допиливаю Победил, через:
this.src = this.src.replace('oldway','newway');
Вопрос: как такой же трюк провести с background для td? То что удалось самому:
var N_Zmen2=0;
$('td[background^="../"]').each(function (e){
$(this).attr('background',$(this).attr('background').replace('oldway','newway'));
N_Zmen2++;
});
По моему его можно сократить. |
$('td[background^="../"]').each(function (i){
this.background=this.background.replace('oldway','newway');
alert(i)
});
|
| Часовой пояс GMT +3, время: 18:20. |