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

时间:2019-04-18 09:46:25

标签: 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");

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

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

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

1 个答案:

答案 0 :(得分:0)

您当然可以遍历添加到DOM中的-elements,因此使用索引为它们提供唯一的ID,例如: 您的{ ...

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

要访问这些-elements中的任何一个,只需使用元素(单击的按钮,anchor ..)即可获得以“ myTest”开头的id的“同级,父项,下一个”元素: $('#yourrferenced-element')。next(“ [id ^ ='myTest-']”“)。attr('id')来获取其id,而不是您想要对其进行的操作。