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
Javascript 使用选择器访问动态创建的元素_Javascript_Jquery - Fatal编程技术网

Javascript 使用选择器访问动态创建的元素

Javascript 使用选择器访问动态创建的元素,javascript,jquery,Javascript,Jquery,我无意中尝试使用经典的jQuery选择器选择新创建的元素,最简单的例子是: var el = $("<input class='form-area' id='myTest'></input>"); $("#myElement").append(el); // works fine el.val("80"); // what I'd like to do $("#myTest").val("80"); 由于我需要创建多个这样的输入,并且它们的行数不同,因此如果我可以使

我无意中尝试使用经典的jQuery选择器选择新创建的元素,最简单的例子是:

var el = $("<input class='form-area' id='myTest'></input>");
$("#myElement").append(el);

// works fine
el.val("80");

// what I'd like to do
$("#myTest").val("80");

由于我需要创建多个这样的输入,并且它们的行数不同,因此如果我可以使用jQuery选择器选择它们,而不必将对它们的引用存储在列表中,那将非常好。

您肯定会迭代添加到DOM中的-元素,因此使用索引为它们提供唯一的ID,如: 你的回路{

要访问这些元素中的任何一个,只需使用元素a单击的按钮、锚点,…获取id以myTest开头的同级、父级、下一个元素:
$'YourReferenced-element'.next[id^='myTest-'].attr'id'获取其id,而不是执行您想对其执行的操作。

您的代码工作正常,如您在此处所见:。这不起作用的一个原因是,如果有多个元素具有相同的myTest id。在这种情况下,您需要创建唯一的id,或使用类。另外请注意,append是一个同步操作,因此尝试从中返回承诺是一个冗余的过度复杂。我确保ID是唯一的。我在ajax调用后创建元素,这会改变什么吗?你需要确保在添加新HTML的回调中调用val,然后它就会工作。你能编辑这个问题以显示更完整的JS示例,包括我尝试过的ajax调用吗选择元素并在其上执行一些琐碎的操作,如$myTest.fadeOut,以查看选择是否有效。我将编辑问题,感谢您的回复,谢谢。在评论中,您可以看到所有ID都是唯一的。+rep尝试提供帮助。好的。我编辑了我的答案:我在编写答案时没有看到评论。代码非常健康vy,我将继续使用列表引用。我认为您能够为添加到DOM中的-元素提供唯一ID。问题是hoq是否可以访问任何tem,对吗?但我们需要您的场景:何时必须识别正确的元素?单击按钮/锚定后?别担心,我会找到答案的
MyAppendFunction().promise().done(function() {
    $("#myTest").val("80");
}
id = `myTest-${YOURINDEX}`
var el = $("<input class='form-area' id='" + id +"myTest'></input>");
..
}