2013-12-10 81 views
0

Javascript並不是我的最愛,但我必須做點什麼。javascript jQuery object building

我想創建一個特殊的數組(它可能是一個對象),該數組關於頁面元素的內容數據。

它需要有一個特殊的結構是這樣的,如果我可以使用PHP來代替:

$navdata= array(
    'string'=> array('key' => $value), 
    'string2'=> array('key' => $value2), 
    'string3'=> array('key' => $value3), 
) 

我試圖創建通過.push這個對象(),但我還是沒有成功。有誰能提出一些建議嗎

回答爲什麼?問題:

我正在製作一個「單頁網站」的導航,它將使用一組動畫和導航元素,例如,箭頭,傳統的導航鏈接,pagenums等等。

但是,我試圖收集所需數據,並在現場使用它們進行動畫的收集數據是不正確的,因爲相對於固定的視口進行計數,但是我需要它們相對於文件。

回答

0

所以你想在javascript中製作一個對象數組?

這是否幫助你:

var navdata = [{ 
    key1: "value1", 
    key2: "value2" 
}, { 
    key1: "value2", 
    key2: "value3" 
}]; 

var object3 = { 
    key1: "value4", 
    key2: "value5" 
}; 

navdata.push(object3); 

console.log(navdata[2].key1); 

編輯:根據您的意見,嘗試這樣的事情:

var myObject = { 
    aboutText: function() { 
     return $("#about").text(); 
    }, 
    aboutTextNoFunction: $("#about").text() 
}; 

console.log(myObject.aboutText()); 
console.log(myObject.aboutTextNoFunction); 

您可以在對象存儲的信息爲「aboutTextNoFunction」 - 字段在你的對象中創建或者簡單地創建函數,在你調用該函數之後,該函數返回值。

+0

是它的真正的對象,但我需要另一種結構或一種從它那裏得到的數據。例如: 我通過ID有一個div =「約」 ..我想要從導航數據的屬性通過navdata ['about']。propertyname ... –

+0

請參閱我編輯的答案。 – Esko

0

這應該工作:

var values = ['value1', 'value2', 'value3']; 
var navdata = {}; 

for (i = 0; i < values.length; i+=1) { 
    if (i === 0) { // special case for the first elem 
     navdata['string'] = { 'key' : values[i] }; 
    } else { 
     navdata['string' + (i+1)] = { 'key' : values[i] }; 
    } 
} 

console.log(JSON.stringify(navdata)); 
+0

如果你可以提供你的HTML的一個小例子,我可以寫一個具體的JS對象,它會爲你的案例閱讀正確的鍵和值。 –