我们可以使用名称或id.Like跟随。
获取HTML元素的属性document.getElementById('id').value; //Javascript**
$('#id').attr('class'); // jquery to get corresponding elements class**
并且像这样获得指定事件的任何方式。在Html方面,我做了这些,
"<"input name='student' onclick='show()'">"
我的需要是, 然后我们如何获得为输入学生指定的事件。
答案 0 :(得分:1)
不确定我是否得到它,但你可以做类似
的事情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)'}]
等...
答案 1 :(得分:0)
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 = $('input').get(0);
el.setAttribute('onkeyup', function() {});
getEventsFor(el).forEach(function(e) {
console.log(e.nodeName); //onSomeEvent
console.log(e.nodeValue); // attached handler
});
function isEvent(element) {
return element.nodeName.startsWith('on');
}
function getEventsFor(element) {
var attrs = element.attributes;
return Array.prototype.filter.call(attrs, isEvent);
}