使用jQuery的对象ID创建一个数组,以便在Django后端上进行处理

goh*_*tis 6 javascript arrays django jquery

我有一些javascript正在创建一个基于AJAX搜索后从后端返回的对象的li.用户可以继续搜索设备,并在选择时将它们添加到当前页面(作为li).每次创建新的li时,我都想发送已经选择的对象的id.

创建li时,它们的id被命名为"device - ###",其中###是数据库中设备的ID,因此我需要删除该部分.

这是给我问题的javascript:

        var children = $('#temp_inventory').children();
        var count = children.length;
        var devices = [];
        var i = 0;
        while (i<=count){
            devices[i] = children[i].id.substr(4);
            i++;
        };
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Uncaught TypeError: Object #<HTMLLIElement> has no method 'attr'
Run Code Online (Sandbox Code Playgroud)

我也尝试了非jQuery方式:

devices[i] = children[i].id.substr(4);
Run Code Online (Sandbox Code Playgroud)

我最终得到了这个错误:

Uncaught TypeError: Cannot read property 'id' of undefined
Run Code Online (Sandbox Code Playgroud)

当我投入时,alert(children[i].id.substr(4));我得到了一个我正在期待的号码的警报.

Rus*_*Cam 3

我想你可能想要,

while (i<count){
  devices[i] = children[i].id.substr(4);
  i++;
};
Run Code Online (Sandbox Code Playgroud)

否则最后一次迭代将超出数组中的最后一项。

使用更简洁的方法来执行此操作$.map()

var devices = $.map($('#temp_inventory').children(), function(elem) {
  return elem.id.substr(4);   
});
Run Code Online (Sandbox Code Playgroud)