我有一堆 <a>
页面上的标签看起来像
<a href="#" id="001" onclick="fnaaa();" >...</a>
...
<a href="#" id="002" onclick="fnaba();" >...</a>
...
<a href="#" id="003" onclick="fncda();" >...</a>
//sometimes maybe like this
<a href="#" id="004" onclick="fnagg(); return false;" >...</a>
...
现在我将 id 作为查询字符串传递给页面,所以我本来想做类似的事情
$('a[id="' + id + '"]').click();
$('a[id="' + id + '"]').trigger("click");
事实证明这两个都是不允许的,所以如果我有 id ,我该如何调用写在 onclick 属性中的函数?我知道我可能会这样得到它
var funcToCall = $('a[id="' + id + '"]').attr('onclick');
但是我该如何调用这个 funcToCall?记住 funcToCall 可能不仅仅是一个函数名 ex。 “fnagg();返回假;”
最佳答案
首先ID属性有some restrictions ,一个是它必须以字母开头。修复该问题后,我建议不要使用内联 onclick
处理程序。
$("#ID_HERE").click(function(e) {
fnaaa();
e.preventDefault();
});
然后就可以轻松触发了:
$("#ID_HERE").triggerHandler("click");
但是,如果您绝对必须使用难看的onclick,您可以调用它like this :
<a id="foo" href="#" onclick="alert('test');">Test</a>
var el = document.getElementById('foo');
el.onclick();
关于javascript - 以编程方式调用 onclick 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15165897/