Tôi cần một cách để xác định loại phần tử HTML trong JavaScript. Nó có ID, nhưng chính phần tử có thể là a <div>
, một <form>
trường, a <fieldset>
, v.v ... Làm thế nào tôi có thể đạt được điều này?
Tôi cần một cách để xác định loại phần tử HTML trong JavaScript. Nó có ID, nhưng chính phần tử có thể là a <div>
, một <form>
trường, a <fieldset>
, v.v ... Làm thế nào tôi có thể đạt được điều này?
Câu trả lời:
nodeName
là thuộc tính bạn đang tìm kiếm. Ví dụ:
var elt = document.getElementById('foo');
console.log(elt.nodeName);
Lưu ý rằng nodeName
trả về tên phần tử được viết hoa và không có dấu ngoặc nhọn, điều đó có nghĩa là nếu bạn muốn kiểm tra xem một phần tử có phải là <div>
phần tử không, bạn có thể thực hiện như sau:
elt.nodeName == "DIV"
Trong khi điều này sẽ không cung cấp cho bạn kết quả mong đợi:
elt.nodeName == "<div>"
if (elt.nodeName && elt.nodeName.toLowerCase() === 'div') { ... }
localName
?
Thế còn element.tagName
?
Xem thêm tagName
tài liệu về MDN .
Đôi khi bạn muốn element.constructor.name
document.createElement('div').constructor.name
// HTMLDivElement
document.createElement('a').constructor.name
// HTMLAnchorElement
document.createElement('foo').constructor.name
// HTMLUnknownElement
Bạn có thể sử dụng kiểm tra mã chung thông qua instanceof
:
var e = document.getElementById('#my-element');
if (e instanceof HTMLInputElement) {} // <input>
elseif (e instanceof HTMLSelectElement) {} // <select>
elseif (e instanceof HTMLTextAreaElement) {} // <textarea>
elseif ( ... ) {} // any interface
Nhìn vào đây để xem danh sách đầy đủ các giao diện.