回答:
if (element.nodeName == "A") {
...
} else if (element.nodeName == "TD") {
...
}
おそらくあなたもノードタイプをチェックする必要があるでしょう:
if(element.nodeType == 1){//element of type html-object/tag
if(element.tagName=="a"){
//this is an a-element
}
if(element.tagName=="div"){
//this is a div-element
}
}
編集:nodeType-valueを修正しました
text/html)
element.tagName.toLowerCase() === 'a'
element.nodeName.toLowerCase()可能性があるelement場合(たとえば、nodeType == 1上記のチェックを行っていない場合)。NodeインターフェースはありnodeName。たとえばElement、と同じtagNameです。他の種類のノードでは、"#text"またはのようなもの"#document"です。でも、私はいつもnodeType小切手を使うと思います。
node.tagName == 'DIV'
roenvingは正しいですが、テストを次のように変更する必要があります。
if(element.nodeType == 1){
//コード
}
nodeType 3は実際にはテキストノードであり、nodeType 1はHTML要素だからです。http://www.w3schools.com/Dom/dom_nodetype.aspを参照してください
通常は、toString()の戻り値から取得します。アクセス方法が異なるDOM要素で機能します。
var a = document.querySelector('a');
var img = document.createElement('img');
document.body.innerHTML += '<div id="newthing"></div>';
var div = document.getElementById('newthing');
Object.prototype.toString.call(a); // "[object HTMLAnchorElement]"
Object.prototype.toString.call(img); // "[object HTMLImageElement]"
Object.prototype.toString.call(div); // "[object HTMLDivElement]"
次に、関連する部分:
Object.prototype.toString.call(...).split(' ')[1].slice(0, -1);
Chrome、FF、Opera、Edge、IE9 +で動作します(以前のIEでは「[オブジェクトオブジェクト]」を返します)。
以前の答えは完全に機能しますが、要素を実装したインターフェイスを使用して要素を分類できる別の方法を追加します。
利用可能なインターフェースについてはW3 Orgを参照してください
console.log(document.querySelector("#anchorelem") instanceof HTMLAnchorElement);
console.log(document.querySelector("#divelem") instanceof HTMLDivElement);
console.log(document.querySelector("#buttonelem") instanceof HTMLButtonElement);
console.log(document.querySelector("#inputelem") instanceof HTMLInputElement);
<a id="anchorelem" href="">Anchor element</a>
<div id="divelem">Div Element</div>
<button id="buttonelem">Button Element</button>
<br><input id="inputelem">
インターフェースチェックは、elem instanceof HTMLAnchorElementまたはの2つの方法で行うことができelem.constructor.name == "HTMLAnchorElement"ます。true
Element.prototype.typeof = "element";
var element = document.body; // any dom element
if (element && element.typeof == "element"){
return true;
// this is a dom element
}
else{
return false;
// this isn't a dom element
}
element.nodeName.match(/\bTBODY\b/i)たりelement.nodeName.toLowerCase() == 'tbody'など