Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在javascript中添加字符串,但它只是不断添加;对象HTMLElement“;而不是元素_Javascript - Fatal编程技术网

试图在javascript中添加字符串,但它只是不断添加;对象HTMLElement“;而不是元素

试图在javascript中添加字符串,但它只是不断添加;对象HTMLElement“;而不是元素,javascript,Javascript,所以我有一个包含隐藏项的表。有一个用户可以按下的按钮,它将擦除所有表行。但是,我想保存隐藏的元素并将它们附加到新表中 我试着这样做是为了实现: var hidden_items = $("input[type='hidden']"); var html = ""; for ( var i = 0, l = hidden_items.length; i < l; i++ ) { if (hidden_items[i].closest("tbody") !== null) {

所以我有一个包含隐藏项的表。有一个用户可以按下的按钮,它将擦除所有表行。但是,我想保存隐藏的元素并将它们附加到新表中

我试着这样做是为了实现:

var hidden_items = $("input[type='hidden']");
var html = "";
for ( var i = 0, l = hidden_items.length; i < l; i++ ) {
    if (hidden_items[i].closest("tbody") !== null) {
         html += hidden_items[i]
   }
}

我做错了什么?如果我执行
console.log(hidden_items[I])
操作,那么它实际上会向控制台输出正确的内容,那么为什么它不能正确地附加到
html
字符串?

这是因为您的元素是html元素(不是字符串),而您正试图将其附加到字符串。这将尝试将对象转换为字符串,即
[object HTMLInputElement]

这在控制台中起作用的原因是因为它很智能,并且理解它是一个元素,所以它在DOM中将您直接链接到它,并向您显示它所指的内容。如果调用
console.log(hidden_items[i].toString())
,您将看到
[object-HTMLInputElement]

您有两种选择:

#一,。将HTML文本附加到HTML字符串。这不会复制原始HTML中可能未显示的事件侦听器/隐藏项:

var hidden_items = $("input[type='hidden']");
var html = "";
for ( var i = 0, l = hidden_items.length; i < l; i++ ) {
    if (hidden_items[i].closest("tbody") !== null) {
         html += hidden_items[i].outerHTML;
   }
}

这是因为您的元素是一个HTML元素(不是字符串),您正试图将其附加到字符串中。这将尝试将对象转换为字符串,即
[object HTMLInputElement]

这在控制台中起作用的原因是因为它很智能,并且理解它是一个元素,所以它在DOM中将您直接链接到它,并向您显示它所指的内容。如果调用
console.log(hidden_items[i].toString())
,您将看到
[object-HTMLInputElement]

您有两种选择:

#一,。将HTML文本附加到HTML字符串。这不会复制原始HTML中可能未显示的事件侦听器/隐藏项:

var hidden_items = $("input[type='hidden']");
var html = "";
for ( var i = 0, l = hidden_items.length; i < l; i++ ) {
    if (hidden_items[i].closest("tbody") !== null) {
         html += hidden_items[i].outerHTML;
   }
}
var hidden_items = $("input[type='hidden']");
var html = [];
for ( var i = 0, l = hidden_items.length; i < l; i++ ) {
    if (hidden_items[i].closest("tbody") !== null) {
         html.push(hidden_items[i]);
   }
}

$('#toplace').append(html);