Javascript 在动态表上使用jQuery自动完成的困难

Javascript 在动态表上使用jQuery自动完成的困难,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我完全被难住了,在这个问题上,我尝试了尽可能多的不同迭代,希望能得到一些帮助。我有一个动态表,它有一个添加行的按钮,但是我无法让自动完成功能在第一行之后工作。对我做错了什么有什么建议吗 这是我的密码: var roomNames = [ "Balcony", "Kitchen", "Bedroom 1" ]; $( "#room-list" ).autocomplete({ source: roomNames }); var Rcounter = 1; $("#addrow

我完全被难住了,在这个问题上,我尝试了尽可能多的不同迭代,希望能得到一些帮助。我有一个动态表,它有一个添加行的按钮,但是我无法让自动完成功能在第一行之后工作。对我做错了什么有什么建议吗

这是我的密码:

var roomNames = [
  "Balcony",
  "Kitchen",
  "Bedroom 1"
];

$( "#room-list" ).autocomplete({
  source: roomNames
});

var Rcounter = 1;

$("#addrow").on("click", function () {
    var rowCount = $('#myTable >tbody >tr').length;
    if (rowCount < 24) {

        var $newRow = $("<tr>");
        var cols = "";
        Rcounter++;

        cols += '<td><input type="text" id="room-list" name="room' + Rcounter +'"></td>';

        $newRow.append(cols);
        $newRow.appendTo("table#myTable").autocomplete(roomNames);


    }
}); 
var roomNames=[
“阳台”,
“厨房”,
“1号卧室”
];
$(“#房间列表”)。自动完成({
资料来源:室名
});
var Rcounter=1;
$(“#添加行”)。在(“单击”上,函数(){
var rowCount=$('#myTable>tbody>tr')。长度;
如果(行数<24){
变量$newRow=$(“”);
var cols=“”;
Rcounter++;
cols+='';
$newRow.append(cols);
$newRow.appendTo(“table#myTable”).autocomplete(房间名);
}
}); 

谢谢您的帮助。

您正在将
自动完成
添加到表行。您需要将其添加到
输入中。此外,您还需要为自动完成设置
源代码,就像为
房间列表设置
一样。现在你只能通过数组

因此,类似这样的操作应该可以修复它(您也可以单独创建输入元素,而不是使用
find
):

另一个解决方案是基于选择器将其设置到表中,而不是将其设置到每个输入。(这将在单击事件之外)

e、 g


非常感谢你。我今天一整天都在挠头,不情愿地想自己解决这个问题。我不知道为什么我不经常使用这个资源。解决方案:
newRow.appendTo(“table#myTable”);newRow.find(“input”).autocomplete({source:roomNames})
$newRow.find("input").autocomplete({ source: roomNames });
$("#myTable").on('keydown.autocomplete', "input", function() {
  $(this).autocomplete({
    source: roomNames
  });
});