Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Замена параметра (https://javascript.ru/forum/jquery/30473-zamena-parametra.html)

VitAl2013 05.08.2012 21:15

Замена параметра
 
Пытаюсь найти все элементы по наличию в значении параметра, затем заменить это значение и поместить назад. Другими словами заменить все найденные значения. Относительные ссылки на прямые.
$('img[src^="../"]').attr('src', function (){
 var fsrc = $(this).replace('../','http://www.site.com/');
 alert(fsrc);
 return fsrc;
});

Deff 05.08.2012 21:56

<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>

VitAl2013 06.08.2012 09:02

Это работает только когда картинки и так загрузились. А как поступить если они по относительным ссылкам не загружаются и надо перецепить их явно, может даже на другой ресурс?
Такое получается из-за фреймов, относительный путь ведёт не туда, начинается белиберда.
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++;
 });


По моему его можно сократить.

Deff 06.08.2012 12:04

$('td[background^="../"]').each(function (i){
 this.background=this.background.replace('oldway','newway');
alert(i)
 });


Часовой пояс GMT +3, время: 19:51.