2013-08-01 64 views
1

我想循環使用javascript中每個類的對象(建築物),就像做我自己的.each()jQuery函數(因爲有時候我只需要第一個建築物,而不是整個類)。有沒有辦法獲得一個Javascript類中的元素的索引?類是像數組一樣構造的,所以我可以訪問像$('。Building)[i]這樣的元素?Javascript index of class

我的類別:

function Building (name, height, width) { 
    this.name = name; 
    this.height = height; 
    this.width = width; 
} 

當我添加一個建築類:

var b1 = new Building("Building1", 1, 2); 
var b2 = new Building("Building2", 3, 4); 

然後,我想通過使用類似的工具來顯示它們

for (var i=0; i<$('.Building').length; i++){ 
displayOnMap($('.Building')[i]); 
} 

這可能嗎?我應該如何編碼?

編輯**

@MESSIAH:當然,你可以讓JavaScript類,點擊這裏;)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

@Ralph:不,我不困惑,實際上它工作得很好,在我的代碼。 .each()函數不僅適用於CSS類,還適用於上面所述的JavaScript類。它的工作原理是這樣的:

$('.Building').each(function() { 
    getData(this); 
}); 
+3

您可能會將常規Javascript類與CSS類混淆。對於我來說,你試圖使用jQuery的css選擇器來選擇你已經實例化的JavaScript對象是沒有意義的。 –

+0

有沒有這樣的事情像JavaScript類...我很抱歉,我認爲這個問題很糟糕...我無法達到你的問題的核心! –

+0

http://stackoverflow.com/questions/2752868/does-javascript-have-classes JavaScript中只有構造函數和原型在 –

回答

3

也許你正在尋找的是增加你的建築對象到一個數組:

var buildings = []; 
buildings.push(b1); 
buildings.push(b2); 

然後,您可以循環,因爲你需要:

for (var i=0, len=buildings.length; i < len; i++){ 
    displayOnMap(buildings[i]); 
}