1

次のように、名前または ID を使用して、HTML 要素のプロパティを取得できますか。

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

$('#id').attr('class');  // jquery to get corresponding elements class**

そして、これらのように、指定されたイベントを取得する方法はありますか? Html 側では、次のようにします。

"<"input name='student' onclick='show()'">"

私の必要性は、入力学生に指定されているイベントをどのように取得するのですか?

4

2 に答える 2

1
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);
}

JSFiddle

于 2013-06-20T05:46:16.303 に答える