【问题标题】:tagName returning UPPERCASE name with namespace in IE 11 while IE 7 return lower case without namespacetagName 在 IE 11 中返回带有命名空间的大写名称,而 IE 7 返回没有命名空间的小写字母
【发布时间】:2015-02-23 14:09:47
【问题描述】:

我正在尝试将带有标记名称的 Dom 元素中的所有子元素检索到一个数组中。

<xs:menu>
 <xs:submenu>
  </xs:submenu>
</xs:menu>

var item=menu.children.tags("XS:SUBMENU") ;

IE 7 has menu.children[0].tagname as  "submenu"
IE 11 has menu.children[0].tagName as  "XS:SUBMENU"

如何让 menu.children[0].tagName 返回相同的标记名?

【问题讨论】:

  • 只需添加.toUpperCase()。至于获取命名空间,除了自己加进去,你可能什么也做不了。
  • 它还返回 "XS:" extra ..
  • 您的意思是前缀(不是后缀)或更准确地说是命名空间。
  • 这应该是 HTML 还是 XML? (这很重要。)
  • @Grasshopper:那是你的问题。 HTML 中没有 submenu 元素。

标签: javascript jquery html internet-explorer-11 xml-namespaces


【解决方案1】:

如果您不关心命名空间,请使用localName 属性而不是tagName。它不应该包含任何命名空间,我注意到它更一致地小写。

【讨论】:

  • localName 返回小写,但在这种情况下带有命名空间,即 11 中的“xs:submenu”和 ie 7 中的“子菜单”
  • 所以IE11没有正确实现DOM4。我建议您将此作为错误报告给 IE 开发人员。
猜你喜欢
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2017-04-21
相关资源
最近更新 更多