Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 浏览器控制台在按ID获取元素时显示null,但代码是否正确执行?_Javascript_Html_Ajax_Dom - Fatal编程技术网

Javascript 浏览器控制台在按ID获取元素时显示null,但代码是否正确执行?

Javascript 浏览器控制台在按ID获取元素时显示null,但代码是否正确执行?,javascript,html,ajax,dom,Javascript,Html,Ajax,Dom,我正在尝试使用JS更改表单的id。当我检查HTML时,它工作正常并更改id,但浏览器控制台输出一个错误,指示我试图通过id获取的元素为null。为什么控制台的行为是这样的?是因为我经常通过JS获取和更改id document.getElementById(“myForm”).id=“myFormAmended” 我应该为表单分配另一个属性来获取它吗?谢谢 编辑:我有另一个函数,当myFormAmended被隐藏时,它会等待将其更改回myForm。在表单被隐藏一次并且id再次被myForm后,我尝

我正在尝试使用JS更改表单的
id
。当我检查HTML时,它工作正常并更改
id
,但浏览器控制台输出一个错误,指示我试图通过id获取的元素为
null
。为什么控制台的行为是这样的?是因为我经常通过JS获取和更改
id

document.getElementById(“myForm”).id=“myFormAmended”

我应该为表单分配另一个属性来获取它吗?谢谢


编辑:我有另一个函数,当
myFormAmended
被隐藏时,它会等待将其更改回
myForm
。在表单被隐藏一次并且
id
再次被
myForm
后,我尝试再次执行对
myFormAmended
的更改,执行此语句后,更改成功,但出现错误:

document.getElementById("myForm").id = "myFormAmended"
您的表单现在的id为
'myFormAmended'
而不是
'myForm'

因此,下次要获取相同的表单时,需要执行:

document.getElementById("myFormAmended");

如果您再次更改它,您应该再次使用最新设置的
id

查询您在控制台上看到错误的确切时间?如前所述,您的问题很难理解,因为几乎没有任何代码。我有一个执行GET请求的函数,但在它开始执行之前,我在该函数中有一行代码,如我的问题中所述。一旦它点击该行,它就会输出错误,但是当我通过Firefox中的Inspector观察HTML时,该行成功执行并更改了所需的
id
,更改元素的id听起来非常奇怪。您确定不想改用类吗?还是数据属性?我使用一个
来执行两个不同的PUT请求。我让jquery侦听来自
myForm
id的提交,现在我需要实现另一个jquery函数,该函数将侦听来自
myFormAmended
id的另一个提交。因此,我需要更改id以实现我的总体目标这很有意义,但是,我有另一个函数,当我的表单被隐藏时,它会将其更改回原始的
id
。因此,我想我的行确实在某种程度上查询了最新的
id
。我有一个if语句,它检查document.getElementById(“MyFormMended”)是否
document=null
将其更改回
myForm
如果出于某种目的需要更改id,请首先将id值存储到变量,然后更改id,完成任务,然后再次将id设置为存储的变量。