从一个属性中获取一个值,并将其添加为另一个属性

Get a value from an attribute and add it as another attribute?

本文关键字:属性 一个 添加 另一个 获取      更新时间:2023-09-26

如何使用jQuery从onclick属性中获取字符串文本并将其设置为href属性。

这是我正在使用的小提琴:http://jsfiddle.net/MBmt5/

我只想从onclick属性中获取TrackPackage.asp?track=95213&ship=OTHER&ShippingMethod=3,并将其设置为href属性

所以它最终会变成这样:http://jsfiddle.net/52Nha/

不幸的是,我不知道如何做到这一点。有人能帮我吗?必须与jQuery 1.4.2兼容。谢谢

更新

我当然会从开始

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

很难看,但我希望这会对你有所帮助。

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

工作演示-http://jsfiddle.net/MBmt5/5/

注意:根据您的标记结构,您可以使用正确的选择器并重用上面的代码。

例如:下面的代码将对页面上具有onclick属性(具有window.open)的所有锚点执行此逻辑。

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

这里有一种方法:

  • http://jsfiddle.net/MBmt5/2/

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