Sco*_*lby 8 html javascript jquery
我<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>
...
Run Code Online (Sandbox Code Playgroud)
现在我将id作为查询字符串传递给页面,所以我原本想做类似的事情
$('a[id="' + id + '"]').click();
$('a[id="' + id + '"]').trigger("click");
Run Code Online (Sandbox Code Playgroud)
事实证明这两个都是不允许的,所以如果我有id,我怎么能调用onclick属性中写的函数?我知道我可能会这样
var funcToCall = $('a[id="' + id + '"]').attr('onclick');
Run Code Online (Sandbox Code Playgroud)
但是如何调用此funcToCall?记住funcToCall可能只是一个函数名ex."fnagg();返回false;"
首先,ID属性有一些限制,一个是它必须以字母开头.解决之后,我建议不要使用内联onclick处理程序.
$("#ID_HERE").click(function(e) {
fnaaa();
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
然后你可以轻松触发它:
$("#ID_HERE").triggerHandler("click");
Run Code Online (Sandbox Code Playgroud)
但是,如果你绝对必须使用丑陋的onclick,你可以像这样调用它:
<a id="foo" href="#" onclick="alert('test');">Test</a>
var el = document.getElementById('foo');
el.onclick();
Run Code Online (Sandbox Code Playgroud)
您正在使用onclick属性来绑定处理程序。尝试像下面这样,
document.getElementById(id).click();
Run Code Online (Sandbox Code Playgroud)
演示: http: //jsfiddle.net/kpvKG/