Javascript 获取“的值”;onclick";用jQuery?
是否可以通过jQuery获取标记的onClick属性的当前值 例如,我有:Javascript 获取“的值”;onclick";用jQuery?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,是否可以通过jQuery获取标记的onClick属性的当前值 例如,我有: <a href="http://www.google.com" id="google" onclick="alert('hello')">Click</a> 或: 因此,在以后的代码中,我可以重新应用该代码,或者在必要时对其进行求值?我从来没有这样做过,但会这样做: var script = $('#google').attr("onclick") mkoryak是正确的 但是,如果使用更现代
<a href="http://www.google.com" id="google" onclick="alert('hello')">Click</a>
或:
因此,在以后的代码中,我可以重新应用该代码,或者在必要时对其进行求值?我从来没有这样做过,但会这样做:
var script = $('#google').attr("onclick")
mkoryak
是正确的
但是,如果使用更现代的方法(而不是使用onclick
)将事件绑定到该DOM节点,则该方法将失败
如果这是你真正想要的,那就去看看,它的答案是可以接受的
干杯
我又读了一遍你的问题。
我想告诉您:不要使用
onclick
、onkeypress
等绑定事件的方法
使用更好的方法,如addEventListener()
将使您能够:
$('selector')这样的jQuery
包装器,而不是实际使用addEventListener()
。单击()
再次干杯
$('#google').attr('onclick') + ""
然而,Firebug显示它返回一个函数“onclick”。稍后可以使用以下方法调用该函数:
(new Function ($('#google').attr('onclick') + ';onclick();'))()
。。。或者使用正则表达式剥离函数
,只获取其中的语句。你能解释一下你到底想实现什么吗?通常,您不必从HTML元素获取onclick属性。此外,不应在元素本身上指定onclick。而是使用JQuery动态设置onclick
但据我所知,您尝试在两个不同的onclick函数之间切换。更好的方法是实现onclick函数,使其能够处理这两种情况
$("#google").click(function() {
if (situation) {
// ...
} else {
// ...
}
});
我不太确定如何在jQuery中做到这一点。。。但这是可行的:
var x = document.getElementById('google').attributes;
for (var i in x) {
if (x[i].name == "onclick") alert(x[i].firstChild.data);
}
但正如Harshas所说,如果使用事件侦听器会更好,因为删除此函数并将其添加回onclick事件可能会很麻烦。这对我来说很有用
var link_click = $('#google').get(0).attributes.onclick.nodeValue;
console.log(link_click);
$('#google').attr('onclick')保存onclick
属性的值(这是一个字符串)。但是,由于浏览器以不同的方式处理事件属性,因此返回的是“function onclick(){alert('hello')}”。因此,如果您想直接调用函数,您必须剥离函数(){}
,或者立即调用它。如果您确实需要访问onclick属性的文本,而不是绑定的函数或事件本身,那么这就是答案。但是,您应该将.get(0).attributes.onclick.nodeValue替换为.get(0).attributes.onclick.value,因为nodeValue已被弃用。您可以获取onclick属性。但并不总是单击事件处理程序。
var x = document.getElementById('google').attributes;
for (var i in x) {
if (x[i].name == "onclick") alert(x[i].firstChild.data);
}
var link_click = $('#google').get(0).attributes.onclick.nodeValue;
console.log(link_click);