如何从javascript获取clone()函数的结果?

时间:2014-06-17 07:06:03

标签: javascript object clone

这是我的代码:

html = "";
for (i = 0; i < id_array.length; i++){
    html = html.concat($(id_array[i]).clone(true));
}
console.log(html);

id_array包含<tr>标记的3个ID。而不是来自ids的html代码,html变量的结果是对象对象...为什么?如何从此ID获取html代码? 这是我的html代码,它不是由我编写的,它是由JQgrid插件生成的。所以我拍了一张照片:

enter image description here

3 个答案:

答案 0 :(得分:2)

您似乎想要致电outerHTML。为了做到这一点,您需要原生DOM元素,您可以使用[0]get(0)获取它:

var html = "";
for (i = 0; i < id_array.length; i++){
    html += $(id_array[i])[0].outerHTML; 
}
console.log(html);

答案 1 :(得分:2)

clone返回jQuery 对象。你不想用空字符串连接它们。相反,使用数组来存储它们:

trs = [];
for (i = 0; i < id_array.length; i++){
    trs.push($(id_array[i]).clone(true));
}
console.log(trs);

在处理DOM时,您不想使用HTML字符串。

答案 2 :(得分:1)

您似乎可能需要TR元素的外部HTML。有些浏览器支持它,但不是全部(并且令人惊讶的不是jQuery)。在这种情况下,您可以执行以下操作:

var id_array = ['tr0','tr1','tr2'];
var html = "";
var tbody = $('<tbody>');

for (i = 0; i < id_array.length; i++) {
  tbody.append($('#' + id_array[i]).clone(true));
  html += tbody.html();
  tbody.html('');
}