2015-03-03 3 views
1

Я зацикливаю данные и создаю результат с использованием метода map от jQuery. после того, как петля сделана, я получаю результат как arrayobject на основе, как это:jQuery `map` преобразовывает массивы в элемент` dom`

[jQuery.fn.init[1], jQuery.fn.init[1], jQuery.fn.init[1], jQuery.fn.init[1], jQuery.fn.init[1]] 

Но я требую объекта на основе jQuery (регулярный элемент DOM), как я могу получить, что от map выхода?

Я пробовал использовать get() после завершения цикла. но бросает error. Каков правильный способ получить вывод dom?

Вот моя функция:

this.tbody = this.tableData.map(function (item, index) { 
    tr = $('<tr />', { id: item.ID }); 
    tr.append('<td><input class="selectRow" type="checkbox" /></td>'); 
    that.headerNames.map(function (label) { 
     var newlabel = label.replace(' ', ''); 
     var labelData = item[newlabel]; 
     tr.append('<td>' + labelData + '</td>'); 
    }); 
    console.log(tr); // [tr#66, jquery: "1.11.1", constructor: function, selector: "", toArray: function, get: function…] //i require all trs became a single output 
    return tr; 
}); 

console.log(this.tbody); 
+0

Не является ли объектом 'jQuery' также массив таких? – JNF

+0

Когда я консолью, я могу видеть элемент 'element' внутри. – 3gwebtrain

ответ

2

Попытка вернуть ссылку на объект дома из обработчика карты затем передать массив в JQuery и попробовать

var tbody = this.tableData.map(function (item, index) { 
    var tr = $('<tr />', { 
     id: item.ID 
    }); 
    tr.append('<td><input class="selectRow" type="checkbox" /></td>'); 
    that.headerNames.map(function (label) { 
     var newlabel = label.replace(' ', ''); 
     var labelData = item[newlabel]; 
     tr.append('<td>' + labelData + '</td>'); 
    }); 
    console.log(tr); // [tr#66, jquery: "1.11.1", constructor: function, selector: "", toArray: function, get: function…] //i require all trs became a single output 
    return tr.get(0); 
}); 

this.tbody = $(tbody) 

Демо: Fiddle, Problem

Смежные вопросы