Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Значение атрибута в недействительной верстке (https://javascript.ru/forum/jquery/9320-znachenie-atributa-v-nedejjstvitelnojj-verstke.html)

morethandoodle 10.05.2010 23:07

Значение атрибута в недействительной верстке
 
Уважаемые форумчане, требуется ваша помощь!

В качестве исходных данных имеем недействительную разметку (генерится движком):

<a href="<img src='/engine/pics/news/pic1_22.jpg' align=left>" rel="lightbox">есть</a>


Нужно:

<a href="/engine/pics/news/pic1_22.jpg" rel="lightbox">есть</a>


Пробовал:

$('a[rel=lightbox]').each(function(n){
		this.href = this.attr("href").attr("src");
	});


Получил:

<a href="%3Cimg%20src=%27/engine/pics/news/pic1_22.jpg%27%20align=left%3E" rel="lightbox">есть</a>


Таких элементов много. Что делать, как быть? :thanks:

B@rmaley.e><e 10.05.2010 23:11

Цитата:

Сообщение от morethandoodle
this.href = this.attr("href").attr("src");

Даже удивительно, как такое может работать.
$('a[rel=lightbox]').each(function(n){ 
        this.href = $(this.href).attr("src"); 
    });

morethandoodle 10.05.2010 23:19

B@rmaley.e><e, и чем только я не пробовал! Твой вариант дает пустой href="".

morethandoodle 10.05.2010 23:23

Откуда вообще берутся эти %3C, %20, %27 и %3E? Как обойтись без них? Чувствую .attr("src"); не срабатывает именно по этой причине...

morethandoodle 10.05.2010 23:33

Перефразирую - я бы с радостью и большим удовольствием отрезал <img src=' и ' align=left> у этого href, и оставил бы только /engine/pics/news/pic1_22.jpg

Пусть это будет даже %3Cimg%20src=%27/engine/pics/news/pic1_22.jpg%27%20align=left%3E - в этом случае отрезал %3Cimg%20src=%27 и %27%20align=left%3E.

sysya 11.05.2010 04:36

Вы что, всё наугад делаете? Код неправильный
$('a[rel=lightbox]').each(function(n){
this.href = this.attr("href").attr("src");
});

Вот так попробуйте:

$('a[rel=lightbox]').each(function(n){
$(this).attr('href', $(тут элемент из которого надо достать src).attr("src"));
});

На счёт движка не понятно, что за движок?

micscr 11.05.2010 08:45

sysya
+10

Вот чуть переделал вариант от B@rmaley.e><e :
$('a[rel=lightbox]').each(function(n){
        this.href = $($(this).attr('href')).attr("src");
    });

exec 11.05.2010 13:28

$('a[rel=lightbox]').each(function(n){
    this.href = this.href.split("'")[1];
});

micscr 11.05.2010 15:22

exec, хоть бы проверял иногда свои советы. Потому что так не верно.

exec 11.05.2010 18:04

micscr, это почему ещё?


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