将一组对象从一个函数传递到另一个函数

时间:2014-03-20 22:18:49

标签: javascript

我正在尝试用css,html和js(没有jquery或three.js)创建幻灯片,因为我不知道这个幻灯片中有多少元素会在我阅读的所有元素中读到一个特定的类型,然后想要将它们传递给下一个编辑CSS的函数(这样我就不必捕获另一个异常)但是对于一些人来说,对于我无法解释的原因,该对象在传递给写入后是空的功能

我尝试了一些不同的方法,但似乎没有任何效果。

有没有办法将数组与对象的内容一起传递?

我在某处读过,因为JS在传递时会创建一个副本。但是在副本中,值是否也应该包含在内?

function read(){
    for (var i = 0;;i++){
        try{
            block.push ({
             id: document.getElementById(i).innerHTML,
              w: window.innerWidth/100*75,
              h: window.innerHeight/100*75, 
           posX: window.innerWidth/3 + i*window.innerWidth/3, 
           posY: window.innerWidth/2});

         console.log("test content: id = " + 
                block[i].id + ", width = " + block[i].w + 
                ", height = " + block[i].h + ", posX = " + 
                block[i].posX + ", posY = " + block[i].posY);       
        }
        catch (err){
            write(block);
            break;
        }
    }
}
function write(){
    for(var i=0; i<block.length; i++){
        console.log(block[i].id);
        //document.getElementById(block[i].id).style.color = "red";
        //document.getElementById(block[i].id).style.position = "absolute";
        //document.getElementById(block[i].id).style.background-position = left     block[i].posX center;
        //document.getElementById(block[i].id).style.width = block[i].w;
   }
}
对不好的英语&amp;糟糕的代码。希望它有些可以理解。

1 个答案:

答案 0 :(得分:0)

示例:http://jsfiddle.net/7Y8bB/

使用document.getElementById,如果它返回null,我停止循环,我需要<div id="0"></div><div id="N"></div>

当我调用write时,我使用write(block)。

function read(){
    var el = null;
    var i = 0;
    var block = [];
    do {
        el = document.getElementById(i);
        if (el) {
            block.push ({id: el.innerHTML, w: window.innerWidth/100*75, h: window.innerHeight/100*75, posX: window.innerWidth/3 + i*window.innerWidth/3, posY: window.innerWidth/2});
            console.log("test content: id = " + block[i].id + ", width = " + block[i].w + ", height = " + block[i].h + ", posX = " + block[i].posX + ", posY = " + block[i].posY);      
            i++;
        }
    } while(el);

    write(block);
}

function write(block){
    for(var i=0; i<block.length; i++){
        console.log(block[i].id);
    }
}
read();