Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法获取窗体的值';在一定条件下的s-id_Javascript_Html_Dom - Fatal编程技术网

Javascript 无法获取窗体的值';在一定条件下的s-id

Javascript 无法获取窗体的值';在一定条件下的s-id,javascript,html,dom,Javascript,Html,Dom,当中的或中的具有id或名称且其值为“id”时,似乎不可能获得id的预期值 例如: <form id="test"> <input id="id" /> </form> 调用document.querySelector('form').id返回HTMLInputElement,而不是“test” 下面是一个JSFIDLE: 你知道为什么会这样吗?有没有办法解决这个问题 谢谢。在DOM属性方面,“无效”名称和“已取”名称之间存在差异 所有这些都是可

中的
中的
具有id或名称且其值为“id”时,似乎不可能获得
id的预期值

例如:

<form id="test">
    <input id="id" />
</form>

调用
document.querySelector('form').id
返回
HTMLInputElement
,而不是
“test”

下面是一个JSFIDLE:

你知道为什么会这样吗?有没有办法解决这个问题


谢谢。

在DOM属性方面,“无效”名称和“已取”名称之间存在差异

所有这些都是可以在表单元素上找到的有效方法/属性(由于接口继承),并且所有这些方法/属性都可以被相同的命名字段覆盖。因此,我建议避免使用这些名称,避免意外冲突:

ELEMENT_NODE
ATTRIBUTE_NODE
TEXT_NODE
CDATA_SECTION_NODE
ENTITY_REFERENCE_NODE
ENTITY_NODE
PROCESSING_INSTRUCTION_NODE
COMMENT_NODE
DOCUMENT_NODE
DOCUMENT_TYPE_NODE
DOCUMENT_FRAGMENT_NODE
NOTATION_NODE
nodeName
nodeValue
nodeType
parentNode
childNodes
firstChild
lastChild
previousSibling
nextSibling
attributes
ownerDocument
insertBefore
replaceChild
removeChild
appendChild
hasChildNodes
cloneNode
normalize
isSupported
namespaceURI
prefix
localName
hasAttributes

id
title
lang
dir
className

elements
length
name
acceptCharset
action
enctype
method
target
submit
reset
item
namedItem

您可以获得如下元素的任何属性值:

var x = document.querySelectorAll('element')[0].getAttribute("attribute")
在本例中,它是一个表单的id,所以

var formId = document.querySelectorAll('form')[0].getAttribute("id")

了解你想要达到的目标会有所帮助,因为这不是一个好的做法。您基本上是在遍历整个DOM以找到表单的id,并如何使用它?

实际上,我正在编写一个扩展,在一个随机网站上测试它时遇到了这个问题。我永远不会做这样的事:)事实上,我正在写一个扩展,我在一个随机网站上测试时遇到了这个扩展。我使用jQuery方法$.prop来获取id值,然后我看到它没有返回预期值,我想通过使用Element.id属性使用普通Javascript,但它仍然没有返回预期值。现在,通过您的回答,我理解了属性和属性之间的区别。谢谢