1
if (((document.activeElement).parentNode).tagName == "div") { 
   //do amazing things 
}

どういうわけか私の特定の機能が機能していません、そしてそれは上の行と関係があると思います。上記の行は構文的に正しいですか、それとも間違っていますか?上記の行が正しければ、質問を削除するか(質問が役に立たないため)、関数の残りの部分の追加情報を追加します。

ありがとう

4

4 に答える 4

4

tagNameはタグを大文字で指定するため、次のようになります。DIV

https://developer.mozilla.org/en-US/docs/DOM/element.tagNameを参照してください

.toLowerCase() == 'div'(コメントで提案されているように)ケースの問題を排除するために使用できます。

于 2012-08-15T22:20:45.393 に答える
2

すべての親が必要なわけではありません。安全のために、を使用してtagName.toLowerCase()ください。

if (document.activeElement.parentNode.tagName.toLowerCase() == "div") { 
   //do amazing things 
}

一部のブラウザでは、他のブラウザと同じケースが表示されない場合があります。これにより、常に同じケースを比較できます。

于 2012-08-15T22:22:54.633 に答える
2

HTMLのコンテキストでは、tagNameフィールドの値は常に大文字です。ただし、このスクリプトをXML / XHTMLコンテキストで実行すると、指定されたとおりに(必ずしも大文字でなくても)タグの名前が返されます。

document.activeElement.parentNode.tagName.toLowerCase()常に小文字にするように呼び出してみてください。

于 2012-08-15T22:23:13.270 に答える
1

これを試して

if (((document.activeElement).parentNode).tagName === "DIV") { 
   //do amazing things 
}
于 2012-08-15T22:22:00.237 に答える