有人知道在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/
感谢您的解决方案!
答案 0 :(得分:11)
$('a[onclick]').attr('onclick', function(i, v){
return v.replace(/1/g, '2');
});
如果您需要更具动态性的内容,请不要使用onclick
属性,更改onclick
属性 hackish ,您可以使用click
方法。
var param = 1;
$('a').click(function(){
// ...
if ('wildguess') {
param = 1;
} else {
param++;
}
})
答案 1 :(得分:1)
听起来是一个非常糟糕的主意但无论如何 - 你可以使用类似的东西访问onlick属性的字符串值:
$('a').each(function() { this.attributes.onclick.nodeValue = this.attributes.onclick.nodeValue.replace('1', '2'); })
答案 2 :(得分:0)
您可以执行此操作:http://jsfiddle.net/SJP7k/
var atr = $('a').attr('onclick');
var str = atr.split('1');
var natr = str.join('2');
$('a').attr('onclick',natr);