Получить значение из атрибута и добавить его в качестве другого атрибута? - PullRequest
0 голосов
/ 05 марта 2012

Как я могу использовать jQuery, чтобы получить строку текста из атрибута onclick и установить его в качестве атрибута href.

Вот скрипка, с которой я работаю: http://jsfiddle.net/MBmt5/

Я хочу взять только TrackPackage.asp?track=95213&ship=OTHER&ShippingMethod=3 из атрибута onclick и добавить его к атрибуту href

, чтобы он выглядел так: http://jsfiddle.net/52Nha/

К сожалению, я понятия не имею, как этого добиться.Кто-нибудь может мне помочь?Должен быть совместим с jQuery 1.4.2.Спасибо.

Обновление

Конечно, я бы начал с:

$(document).ready(function(){
$('span.trackpackagebutton').closest('a').removeAttr('href');
});

Ответы [ 3 ]

0 голосов
/ 05 марта 2012

Вот один из способов:

0 голосов
/ 05 марта 2012

http://jsfiddle.net/GaZGv/1

var $a = $('span.trackpackagebutton').closest('a');
var href = $a.attr('onclick').split('(')[1].split(',')[0].replace(/'/g, '');
$a.attr('href', href).removeAttr('onclick');

alert(href)​
0 голосов
/ 05 марта 2012

Безобразно, но я надеюсь, что это поможет вам.

$('a').attr('href', 
            $('a')[0].getAttribute('onclick')
            .replace("window.open('", '').split(',')[0].replace("'", ''))
      .removeAttr('onclick');​​​​​​​​​​​​​​​

Рабочая демоверсия - http://jsfiddle.net/MBmt5/5/

Примечание. В зависимости от структуры разметки вы можете использовать правильный селектор и повторно использовать приведенный выше код.

Eg. Приведенный ниже код выполнит эту логику для всех якорей на странице, имеющих атрибут onclick с window.open.

$('a[onclick^="window.open"]').each(function(){
    $(this).attr('href', 
                this.getAttribute('onclick')
                .replace("window.open('", '').split(',')[0].replace("'", ''))
           .removeAttr('onclick');​​​​​​​​​​​​​​​
});
...