正确使用.tagName

时间:2012-08-15 22:19:04

标签: javascript nodes

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

由于某些原因,我的特定功能无法正常工作,我认为这与上面的这一行有关。这条线在语法上是正确的,还是错的?如果上面的行是正确的,我会删除问题(因为那时问题没用)或添加函数其余部分的其他信息。

由于

4 个答案:

答案 0 :(得分:4)

tagName以大写形式给出标记,因此它会给出DIV

请参阅https://developer.mozilla.org/en-US/docs/DOM/element.tagName

您可以使用.toLowerCase() == 'div'(根据评论中的建议)消除案例问题。

答案 1 :(得分:2)

你不需要所有的parens。为安全起见,请使用tagName.toLowerCase()

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

可能有些浏览器有时不提供与其他浏览器相同的案例。这可以确保您始终比较相同的情况。

答案 2 :(得分:2)

在HTML的上下文中,tagName字段中的值始终为大写。 但是,如果您在XML / XHTML上下文中运行此脚本,它将完全按照提供的方式返回标记的名称(而不一定是大写)。

尝试调用document.activeElement.parentNode.tagName.toLowerCase()使其始终为小写。

答案 3 :(得分:1)

试试这个

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