Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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/2/jquery/79.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 访问创建的DOM元素_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 访问创建的DOM元素

Javascript 访问创建的DOM元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有代码可以通过点击按钮创建另一个“行”(带输入的div)。我正在创建新的输入元素,一切正常,但是,我找不到访问这些新元素的方法 示例:我有一个输入元素(下面的名称_1)。然后我使用javascript的createElement函数创建另一个输入元素(下面的名称_2) <input type='text' id='name_1' name="name_1" /> <input type='text' id='name_2' name="name_2" /> 我使用了j

我有代码可以通过点击按钮创建另一个“行”(带输入的div)。我正在创建新的输入元素,一切正常,但是,我找不到访问这些新元素的方法

示例:我有一个输入元素(下面的名称_1)。然后我使用javascript的
createElement
函数创建另一个输入元素(下面的名称_2)

<input type='text' id='name_1' name="name_1" />
<input type='text' id='name_2' name="name_2" />

我使用了jQuery和JavaScript选择器。示例:
$('#lp_2').html()
返回null。
document.getElementById('lp_2')也是如此

必须创建元素,并使用appendChild等函数将其添加到DOM中。有关详细信息,请参阅


我猜您调用了createElement(),但从未将其添加到DOM层次结构中。

如果将其正确添加到DOM树中,则可以使用document.getElementById查询它。然而,浏览器错误可能会引起麻烦,所以使用像jQuery这样的JavaScript工具包来解决浏览器错误

var input1=$('input[name=“lp_name_1”]”)。克隆(true)

您发布的代码不表示任何具有该名称属性的元素。在本部分之前,您创建了一个具有类似的id属性的元素,但是您可以使用
$(“#lp_1”)
来选择该元素,即使在您将其插入文档之前,该元素也将无法工作,直到您将其插入到文档中之后才执行此操作

var input1 = $( 'input[name="lp_name_1"]').clone(true);
应该是

var input1 = $( 'input[@name="lp_name_1"]').clone(true);
首先,检查input1是否实际返回某些内容(可能是某种调试语句),以确保这不是问题所在


编辑:刚刚听说这只适用于较旧版本的JQuery,所以请不要理会我的建议。

非常感谢您的回答。在离开并回到我的代码之后,我注意到我犯了一个错误。我有两个函数,它们以不同的方式添加了行。我“100%确定”我调用的是正确的(我发布的代码示例),但遗憾的是,我不是

对于那些同样遇到问题的人,我想说我收到的所有答案都是一个很好的开始,我已经将它们用于调试,它们将确保代码的正确性

我的代码示例对于我所需要的是100%正确的,我只需要调用它。(呸!)

再次感谢你的帮助


-杰米

你能发布示例代码吗?我不明白为什么这不起作用……也许我遗漏了一些东西,尽管我把它添加到了我的帖子中。我使用jQuery选择器访问任何元素和纯JavaScript,但两者都没有访问元素。我实际上使用的是jQuery,但我认为我不需要将其添加到问题中。不过jQuery帮了大忙。你能用jQuery选择器,即$(“#name_2”)而不是getElementById()来获取元素吗?如果不是的话,那至少有助于消除浏览器问题。我尝试了这两种方法都没有用。示例:$('#lp_2').html()。(null)我正在使用jQuery的append(content)函数添加新元素。根据文档,它与appendChild()相同。还是不走运。这是xPath语法,它是不必要的,在jQuery中已经很长时间不起作用了。哦,酷,我没意识到这一点。之前在玩演示,如果没有@,查询将无法工作。只是仔细检查了一下,网站使用的是较旧版本的jquery,这就解释了这一点。谢谢你的信息!名称为lp_name_1的输入元素是页面原始形式的一部分。我正在克隆该元素以允许输入第二个名称。“名字”字段将始终存在。另一件事是,创建元素是有效的,之后再使用它们是无效的。
var input1 = $( 'input[@name="lp_name_1"]').clone(true);