Замена параметра
Пытаюсь найти все элементы по наличию в значении параметра, затем заменить это значение и поместить назад. Другими словами заменить все найденные значения. Относительные ссылки на прямые.
$('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, время: 01:19. |