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



我偶然发现尝试使用经典的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");

由于我非常不确定为什么所需的选择器在新创建的元素上不起作用,因此在确定已成功创建元素后,我尝试访问这些元素:

MyAppendFunction().promise().done(function() {
    $("#myTest").val("80");
}

由于我需要创建这样的多个输入并且它们的数量各不相同(表的行(,如果我可以使用 jQuery 选择器选择它们,而不必在列表中存储对它们的引用,那就太好了。

您肯定会遍历添加到 DOM 中的 -元素,因此请使用索引为它们提供唯一的 ID,例如:YOURLOOP {...

id = `myTest-${YOURINDEX}`
var el = $("<input class='form-area' id='" + id +"myTest'></input>");
..
}

要访问这些 -元素中的任何一个,只需使用该元素(单击的按钮、锚点,..(来获取 id 以 "myTest" 开头的 "sibling, parent, next, " 元素:$('#yourrferenced-element'(.next("[id^='myTest-']"(.attr('id'( 来获取它的 id 而不是做你想用它做的事情。

最新更新