3

有人知道在 onclick 属性中替换某些字符串的最佳方法是什么吗?
我需要获取当前值并替换参数内的一些文本。

例如,
我有这个链接:

<a href="#" onclick="myfunction('parameter1a','parameter1b')">My link</a>

我想要这个:

<a href="#" onclick="myfunction('parameter2a','parameter2b')">My link</a>

换句话说,我想要这样的东西:

$('a').attr('onclick', $(this).attr('onclick').replace('1', '2'));

而且我知道我可以做到这一点,但我需要一些动态的东西来检索当前元素的值:

$("a").attr('onClick', "myfunction('parameter2a','parameter2b')");

最后当我做了一个简单的演示时它工作了:http: //jsfiddle.net/GkWhh/4/

感谢您的解决方案!

4

3 回答 3

11
$('a[onclick]').attr('onclick', function(i, v){
   return v.replace(/1/g, '2');
});

http://jsfiddle.net/cj9j7/

如果您需要更动态的东西,请不要使用onclick属性,更改onclick属性是hackish,您可以改用click方法。

var param = 1;
$('a').click(function(){
   // ...

   if ('wildguess') {
     param = 1;
   } else {
     param++;
   }
})
于 2013-01-16T19:09:26.360 回答
1

听起来是个很糟糕的主意,但无论如何 - 您可以使用类似的方法访问 onlick 属性的字符串值:

$('a').each(function() { this.attributes.onclick.nodeValue = this.attributes.onclick.nodeValue.replace('1', '2'); })

于 2013-01-16T19:10:03.157 回答
0

你可以这样做:http: //jsfiddle.net/SJP7k/

var atr = $('a').attr('onclick');
var str = atr.split('1');
var natr = str.join('2');
$('a').attr('onclick',natr);
于 2013-01-16T19:11:57.577 回答