在Jquery中选择和更改附加的HTML输入标记

Selecting and changing an appended HTML input tag in Jquery

本文关键字:HTML 输入 Jquery 选择      更新时间:2023-09-26

我有一个问题,我无法通过研究/谷歌解决。我成功地将以下输入框添加到HTML/JQuery项目中。它们都按预期出现在网页上。

for (i = 0; i < max; i++) {
  var id = myUniqueIDs[i];
  $("#targetedDiv").append(myUniqueIDs[i] + ': <input id = "' + id + '" type = "text" class = "findOutputs" readonly/>');
}

稍后在我的代码中,在一些用户交互之后,我尝试在输入框中写入一些信息。它们不能被用户写入(它们是只读的)。我知道我可以通过Jquery写入只读输入框,因为它是在我的项目的其他地方完成的。但是它就是不工作。

for (i = 0; i < max; i++) {
  var y = getY(); // the returned variable is confirmed correct via debugging
  var id = myUniqueIDs[i]; // again, confirmed correct
  $('#' + id).val(y); // does not work
}

当我把var test = $("#targetedDiv").html();放到代码中时如果我能看到test是

uniqueID1: <input id="uniqueID1" class="findOutputs" readonly="" type="text">
uniqueID2: <input id="uniqueID2" class="findOutputs" readonly="" type="text">
uniqueID3: <input id="uniqueID3" class="findOutputs" readonly="" type="text">

所以我真的不知道问题是什么。$('#' + id).val(y);有什么违法的吗?

在Jquery中可以不选择附加标签吗?有人能指出我遗漏了什么吗?

问题肯定是选择,因为我在改变值的部分之后尝试了var test = $("#targetedDiv").html();,并且在变量测试上没有差异,就像在第二个循环之前完成时一样,因此$('#' + id).val(y);(或答案中的其他建议)没有效果。

Musa在评论中回答了这个问题。"如果id包含特殊字符,则必须转义它们。"我的(真实的)id包含一个空格。