使用replace with jQuery更改onclick属性

使用replace with jQuery更改onclick属性,jquery,attributes,replace,onclick,attr,Jquery,Attributes,Replace,Onclick,Attr,有人知道替换onclick属性中的字符串的最佳方法是什么吗? 我需要获取当前值并替换参数中的一些文本 例如,我有以下链接: 我知道我可以做到这一点,但我需要动态检索当前元素的值: 当我做了一个简单的演示时,它终于开始工作了: 感谢您的解决方案 $('a[onclick]').attr('onclick', function(i, v){ return v.replace(/1/g, '2'); }); 如果您需要更具动态性的内容,请不要使用onclick属性,更改onclick属性是很有

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

例如,我有以下链接:

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

当我做了一个简单的演示时,它终于开始工作了:

感谢您的解决方案

$('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'.eachfunction{this.attributes.onclick.nodeValue=this.attributes.onclick.nodeValue.replace'1',2';}

您可以执行以下操作:


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

   if ('wildguess') {
     param = 1;
   } else {
     param++;
   }
})
var atr = $('a').attr('onclick');
var str = atr.split('1');
var natr = str.join('2');
$('a').attr('onclick',natr);