使用replace with jQuery更改onclick属性

使用replace with jQuery更改onclick属性,jquery,attributes,replace,onclick,attr,Jquery,Attributes,Replace,Onclick,Attr,有人知道替换onclick属性中的字符串的最佳方法是什么吗? 我需要获取当前值并替换参数中的一些文本 例如,我有这个链接: <a href="#" onclick="myfunction('parameter1a','parameter1b')">My link</a> <a href="#" onclick="myfunction('parameter2a','parameter2b')">My link</a> $('a').attr('o

有人知道替换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')");
我知道我可以做到这一点,但我需要动态检索当前元素的值:

<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')");
当我做了一个简单的演示时,它终于开始工作了:

感谢您的解决方案

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

如果您需要更具动态性的内容,请不要使用
onclick
属性,更改
onclick
属性是不礼貌的,您可以使用
click
方法

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

   if ('wildguess') {
     param = 1;
   } else {
     param++;
   }
})

听起来这是一个非常糟糕的主意,但无论如何-您可以使用以下内容访问onlick属性的字符串值:

$('a').each(function(){this.attributes.onclick.nodeValue=this.attributes.onclick.nodeValue.replace('1','2');})
您可以执行以下操作:


为什么“需要更动态的东西?”您只需要知道需要更改哪些参数,并在click函数中创建一个条件语句,将参数传递给自定义的
myFunction(par1,par2)
为什么首先需要这样做?这个布局是如何创建的,为什么您不能更改它?总的来说,这是错误的approach@Alexander-你有更好的方法吗?我在JSFIDLE上做了一个简单的演示。但最终它成功了!我将更仔细地查看我的真实代码,看看缺少了什么。以前,当我添加一些目标()时,添加解决方案的链接没有更新参数。谢谢你的帮助!我还将选择器更改为
a[onclick]
这很奇怪,我看到它在您的JSFIDLE上工作。但对我来说,控制台show me:Uncaught TypeError:Object function onclick(event){myfunction('parameter1a','parameter1b')}没有方法'replace'@ShadGagnon这是因为您的
a
元素没有
onclick
属性,我已经更新了选择器。我已经更新了选择器。。。但问题仍然存在。在返回v.replace(/1/g,'2')之前,我尝试像这样警告onclick attr($(this).attr('onclick')),它正确地显示了我的函数。控制台仍然显示:uncaughttypeerror:Object function onclick(event){myfunction('parameter1a','parameter1b'}没有方法'replace'@ShadGagnon您能在jsfiddle上提供一个演示吗?