使用jQuery获取onclick字符串

时间:2010-11-15 14:22:45

标签: javascript jquery string google-chrome onclick

我不得不从图像上的onclick属性中提取第二个参数(数组),但是jQuery只返回了一个函数onclick而不是它预期的字符串值。所以我不得不使用原生方法 快速搜索说可能可以使用某些浏览器(如FF),但不能使用IE浏览器。我使用Chrome。

<img src="path/pic.png" onclick="funcName(123456,[12,34,56,78,890]);" />

我认为这会奏效,但不会

var div = $('div_id');
var onclick_string = $(div).find('img').eq(0).attr('onclick');
var onclick_part = $(onclick_string).match(/funcName\([0-9]+,(\[.*\])/)[1]; // for some reason \d doesnt work (digit)

此作品

var div = $('div_id');
var onclick_string = $(div).find('img')[0].getAttributeNode('onclick').value;
var onclick_part = $(onclick_string).match(/funcName\([0-9]+,(\[.*\])/)[1]; // for some reason \d doesnt work (digit)

是否有另一种获取第二个参数的方法?

2 个答案:

答案 0 :(得分:1)

为什么不将它存储在data属性中?

<img src="path/pic.png" onclick="funcName(123456);" data-mydata='12,34,56,78,890' />

var div_data = $('div_id').data('mydata').split(',');

答案 1 :(得分:0)

<强>更新

我使用以下代码循环遍历span标记集合并输出它们的onclick字符串。它是hacky但它​​的工作原理(firefox 7,JQuery 1.5.1)。您甚至可以覆盖字符串值。

$("span").each(function(index)
{
  alert( $(this)[0].attributes.onclick.nodeValue );
});