Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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连接两个html元素数组_Javascript_Html_Arrays_Push_Concat - Fatal编程技术网

如何使用JavaScript连接两个html元素数组

如何使用JavaScript连接两个html元素数组,javascript,html,arrays,push,concat,Javascript,Html,Arrays,Push,Concat,我已经尝试过concat和push方法,但对我不起作用。这就是我想做的: var left = document.getElementById('main-left').children; var right = document.getElementById('main-right').children; var main = left.concat(right); left = [<article class=​"content">​…​</article>​,

我已经尝试过concat和push方法,但对我不起作用。这就是我想做的:

var left = document.getElementById('main-left').children;
var right = document.getElementById('main-right').children;
var main = left.concat(right); 

left = [<article class=​"content">​…​</article>​, <article class=​"content">​…​     </article>​, <article class=​"content">​…​</article>​]
right = [<article class=​"content">​…​</article>​, <article class=​"content">​…​ </article>​, <article class=​"content">​…​</article>​]
var left=document.getElementById('main-left').children;
var right=document.getElementById('main-right').children;
var main=左侧。concat(右侧);
左=[​…​​, ​…​     ​, ​…​​]
右=[​…​​, ​…​ ​, ​…​​]

您确实应该使用concat,但如下所示:

var left = document.getElementById('main-left').children;
var right = document.getElementById('main-right').children;

left = [].slice.call(left);
var main = left.concat.apply(left, right);

// or even var main = [].concat.apply([], [[].slice.call(left), [].slice.call(right)]);
    function logElementArray(){
    var leftArray = document.getElementById('left').children;
    var rightArray = document.getElementById('right').children;
    var mainArray=[];
    for(var i=0; i<rightArray.length; i++){
        mainArray.push(rightArray[i]);
    }
    for(var i=0; i<leftArray.length; i++){
        mainArray.push(leftArray[i]);
    }
 }
left
不是数组实例,因此它没有Array.prototype方法,如
slice
concat
,因此需要使用


或者您当然可以简单地使用for loop并在循环中填充新数组。

首先看到
left
right
在任何意义上都不是数组。您必须执行
document.querySelectorAll
document.getElementsByClassName
来获取数组,然后您可以应用类似数组的方法来连接它们。 最好使用:

// `a` into `b`:
for (var i=a.length-1; i >= 0; i--) {
     b.unshift( a[i] );
}
getElementById()从不返回数组,因此push和concat在“左”和“右”对象上不可用。您可以尝试以下操作:

var left = document.getElementById('main-left').children;
var right = document.getElementById('main-right').children;

left = [].slice.call(left);
var main = left.concat.apply(left, right);

// or even var main = [].concat.apply([], [[].slice.call(left), [].slice.call(right)]);
    function logElementArray(){
    var leftArray = document.getElementById('left').children;
    var rightArray = document.getElementById('right').children;
    var mainArray=[];
    for(var i=0; i<rightArray.length; i++){
        mainArray.push(rightArray[i]);
    }
    for(var i=0; i<leftArray.length; i++){
        mainArray.push(leftArray[i]);
    }
 }
函数logElementArray(){
var leftArray=document.getElementById('left').children;
var rightary=document.getElementById('right').children;
var mainArray=[];

对于(var i=0;i,这里有一个代码片段,用于将元素添加到数组中,然后将数组中的元素添加到元素中

如果这是您尝试使用appendChild()执行的操作,则可能会更好

var a=document.getElementsByClassName(“测试”);
var b=“”;
对于(变量i=0;i
.test{
边框:5px纯色矢车菊蓝;
高度:50px;
}
#主要{
边框:5px实心耐火砖;
}

如何获取节点列表并不重要。节点列表是节点列表,而不是数组。