2016-10-07 47 views
-1

我一直在試圖做到這一點,但它不工作,我的對象有2種元素,而且它只有1個元素返回:/如何獲取對象的長度?

下面的代碼我有

var jumbo = document.getElementsByClassName("jumbotron"); 
var button = document.getElementById("changebg"); 

var tiles = { 
    tile1 : { 
    header : "header1", 
    desc : "desc1" 
    }, 
    tile2 : { 
    header : "header2", 
    desc : "desc2" 
    } 
}; 

function getObjectLength(obj){ 
    var count = 0; 
    for (var i in obj) { 
    if (obj.hasOwnProperty(i)) { 
     count++; 
    }; 
    }; 
    return count; 
}; 

function changeBackground(){ 
    document.getElementsByClassName("jumbotron")[0].innerHTML = getObjectLength(document.getElementsByClassName("jumbotron")); 
}; 
+0

'Object.keys(obj).length' – naththedeveloper

+0

您是否嘗試過'Object.keys(obj).length' –

+0

如果您正在嘗試獲取'tiles'對象中的屬性數量,請注意顯示的代碼不會將該對象傳遞給'getObjectLength()'。如果你只是想知道'jumbotron'類有多少元素,你可以說'document.getElementsByClassName(「jumbotron」).length',因爲'.getElementsByClassName()'返回一個具有'.length'屬性的列表。 – nnnnnn

回答

0

使用Object.keys(obj).length得到物體的長度

var tiles = { 
 
     tile1 : { 
 
     header : "header1", 
 
     desc : "desc1" 
 
     }, 
 
     tile2 : { 
 
     header : "header2", 
 
     desc : "desc2" 
 
     } 
 
    }; 
 
    
 
    console.log(Object.keys(tiles).length);

你的函數「金思維bjectLength」也適用,並返回2

var tiles = { 
 
    tile1 : { 
 
    header : "header1", 
 
    desc : "desc1" 
 
    }, 
 
    tile2 : { 
 
    header : "header2", 
 
    desc : "desc2" 
 
    } 
 
}; 
 

 
function getObjectLength(obj){ 
 
    var count = 0; 
 
    for (var i in obj) { 
 
    if (obj.hasOwnProperty(i)) { 
 
     count++; 
 
    }; 
 
    }; 
 
    return count; 
 
}; 
 

 

 
console.log(getObjectLength(tiles));

我猜,你得到計數1,因爲那裏的類名只有一個元素是‘超大屏幕’。

getObjectLength(document.getElementsByClassName("jumbotron"))

0

嘗試Object.keys(obj).length方法

var tiles = { 
tile1 : { 
    header : "header1", 
    desc : "desc1" 
}, 
tile2 : { 
    header : "header2", 
    desc : "desc2" 
} 
} 

console.log(Object.keys(tiles).length); 
0
document.getElementsByClassName("jumbotron")[0].innerHTML = document.getElementsByClassName("jumbotron").length; 

嘗試。 你的函數正在尋找json對象的長度。