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/

If you need something more dynamic do not use onclick attributes, changing onclick attributes is hackish, you can use click method instead.

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

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

sounds like a really bad idea but anyway - you can access the string value of the onlick attribute using something like that:

$('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 に答える