5

今天我遇到了这个问题,这让我很恼火......我正在维护一个JS项目并且有一行:

node.tagName

node.nodeType在哪里1。显然代码想要获取这个元素的标签名称,它似乎适用于 99.99% 的网页......

可悲的是,当我在http://codeforces.com/problemset/problem/377/D上执行脚本时,它不起作用。原因是有一个form具有子节点的元素具有 property name="tagName"
在此处输入图像描述

form具有属性的元素的子节点name可以通过如下方式访问:(node.NAME_VALUE引用,因此node.tagName将获取其名称属性为tagName而不是节点标签名称的子节点form

有没有人也遇到过这个问题?除了检查节点是否存在之外,还有其他解决方案form吗?


编辑 1:
我在这里为 jQuery 解雇了一个错误。我这样做是因为 jQuery 解决这个问题可能.prop("tagName")比让所有浏览器都解决这个问题要容易得多。
顺便说一句,我认为没有人应该使用类似tagNamenodeName作为 HTMLInputElementname值的东西。

4

2 回答 2

0

如果node.tagName对您不起作用,请使用node.nodeName.

node.nodeName在我的代码中使用。

于 2015-01-07T00:35:24.433 回答
0

我不是这些事情的专家,所以这可能不是你能得到的最好答案,但绝不会更少......我可以想到两个解决方案:

1) 如果您可以确定输入名称不存在,请改用 nodeName。

2)使用element.clone(false).tagName(如document.getElementById('someid').clone(false).tagName

于 2014-01-02T18:25:34.547 回答