jQuery.map()只查找带有数字ID的元素

时间:2014-09-08 08:12:57

标签: jquery map

我正在存储表行订单服务器端,以便用户可以根据需要排列行。当我加载页面时,我称之为:

var items = $('#body').find('tr');

var order = [ <? echo $row_order; ?>];

var orderedItems = $.map(order, function(value) {
   return items.get(value);
});

$('#body').empty().html(orderedItems);

如果行具有整数ID,则此方法非常有效。如果ID中有字母,它就不起作用 - 表格刚刚清空。在orderedItems变量上抛出console.log(),我发现在这种情况下它也是空的。有没有办法让它与字母数字行ID一起使用,还是只需更改命名约定?

修改

以下是订单变量的两个实例,第一个工作,第二个不工作:

var order = [ 1,0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21];

var order = [ view_42,edit_42,view_41,view_43];

2 个答案:

答案 0 :(得分:0)

如果order是元素ID数组

var items = $('#body').find('tr');

var order = [ <? echo $row_order; ?> ];

var orderedItems = $.map(order, function (value) {
    //or return $('#' + value).get();
    return items.filter('#' + value).get();
});

$('#body').empty().html(orderedItems);

演示:Fiddle

答案 1 :(得分:0)

试试这个:

var orderedItems = $.map(order, function(value) {
   return items.filter('#' + value);
});