2015-03-03 74 views
1

我正在循環一個數據,並使用的map方法創建一個結果。循環完成後,我得到的結果爲array基於object這樣的: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 2015-03-03 10:26:43

+0

當我安慰,我可以看到裏面的'元素'。 – 3gwebtrain 2015-03-03 10:28:18

回答

2

嘗試返回從地圖處理DOM對象引用,則數組傳遞給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) 

演示:FiddleProblem