这是我的代码:
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插件生成的。所以我拍了一张照片:
答案 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('');
}