使用Javascript或Jquery查找为对象指定的事件?

使用Javascript或Jquery查找为对象指定的事件?,javascript,jquery,events,jquery-events,Javascript,Jquery,Events,Jquery Events,我们是否可以使用HTML元素的名称或id获取HTML元素的属性,如下所示: document.getElementById('id').value; //Javascript** $('#id').attr('class'); // jquery to get corresponding elements class** 像这样,有没有办法获得指定的事件?在Html端,我执行以下操作: "<"input name='student' onclick='show()'">"

我们是否可以使用HTML元素的名称或id获取HTML元素的属性,如下所示:

document.getElementById('id').value; //Javascript** 

$('#id').attr('class');  // jquery to get corresponding elements class**
像这样,有没有办法获得指定的事件?在Html端,我执行以下操作:

"<"input name='student' onclick='show()'">"
“”
我的需要是, 那么我们如何获得为输入学生指定的事件

var attrs = $('input').get(0).attributes;
var f = Array.prototype.filter.call(attrs, isEvent); //Filter all attributes
//f now contains all attribute nodes that are events
f.forEach(function(e) { console.log(e.nodeName); });    

function isEvent(element) {
    return element.nodeName.startsWith('on');
}
对于以下输入标记,它将记录onclick,onchange。适用于内联附加的事件或使用JavaScript创建的事件属性

<input name='student' onclick='show()' onchange='return true;'/>

我不确定我是否明白,但你可以做类似的事情

var el  = document.getElementById("id"),
    arr = [];

for (var i=0, attrs=el.attributes, l=attrs.length; i<l; i++){
    if (attrs.item(i).nodeName.indexOf('on') === 0) {
        var o = {};
        o[attrs.item(i).nodeName] = attrs.item(i).nodeValue;
        arr.push(o);
    }
}
等等


您的意思是属性包含什么,或者存在哪些属性?
为什么在代码中加上类似的引号?是弦还是什么?这似乎不正确。@adeneo:类似于提醒类的alert($('#id').attr('class')),OP想知道附加到特定HTML元素的事件处理程序
var el  = document.getElementById("id"),
    arr = [];

for (var i=0, attrs=el.attributes, l=attrs.length; i<l; i++){
    if (attrs.item(i).nodeName.indexOf('on') === 0) {
        var o = {};
        o[attrs.item(i).nodeName] = attrs.item(i).nodeValue;
        arr.push(o);
    }
}
[{'onclick' : 'show()'}, {'onmouseenter' : 'javascript:void(0)'}]