拆分JavaScript URL jQuery

时间:2013-12-18 21:18:54

标签: jquery join onclick split

我的HTML中的锚点具有onclick属性,如下所示:

 <a href="javascript:void(0);" onclick="javascript:OpenNewWindow('/help_options.asp?ID=23', 350, 250);" class="help_question_mark">?</a>

我正在尝试剥离JavaScript处理程序以获取裸URL并将其支持到href属性,因此结果将如下所示:

 <a href="/help_options.asp?ID=23" class="help_question_mark">?</a>

我认为它很简单,只需写下这样的东西:

$('a.help_question_mark').each(function(){
  help_question_mark_link = $(this).attr('onclick').split('javascript:OpenNewWindow(\'').join('').split('\', 350, 250);').join('');
  $(this).removeAttr('onclick');
  $(this).attr('href',help_question_mark_link);
});

在jQuery 1.1.1中,这似乎有效,但在1.4.2中我没有限制使用。

任何人都可以对此有所了解,我是个腌菜。

这是jsFiddle

1 个答案:

答案 0 :(得分:2)

行。所以经过多次摆弄后,我发现当你调用$(...).attr('onclick')时,jQuery 1.4.2会返回一个特殊的onclick对象,而不仅仅是一个字符串。

所以我们需要摆脱jQuery使用它:

this.getAttribute('onclick')

而不是:

$(this).attr('onclick')

很奇怪。 请参阅此JSFiddle

P.S。我通过console.log $(...).attr('onclick')返回的值找到了这个。