2011-04-03 128 views
2

我有一些json和jQuery似乎沒有正確選擇其元素。我參考的json文檔可以在這裏找到:http://pastebin.com/bM3BvD2F用jQuery選擇器選擇JavaScript數組元素項目

json是一個元素數組,我試圖選擇一個需要的ID。

(你可以複製粘貼到http://jsonviewer.stack.hu/爲它的一個很好的摺疊視圖)

這裏是我有問題的代碼:

//get current picture ID - will return '2' - correct value  
    var currentID = window.location.hash ? window.location.hash.substring(1) : allImages[0]["id"]; 

    //this line will alert name attribute value for a picture with (id = 4) - wrong :(
    alert($(allImages[id=currentID])[0].name); 

回答

3

allImages是一個普通的數組,所以allImages[id=currentID]將導致創建名爲id TEMP變量,分配的currentID的值並返回圖2,使所述第三元件的陣列中被退回。該元素具有確實的4

id你需要的是「深度搜索」,並做到這一點的方法之一是使用.map功能:

var name = jQuery.map(allImages, function (value) { 
    return (value.id == currentID) ? value : null; 
})[0].name; 

快速測試案例:http://jsfiddle.net/PWPcE/

+0

謝謝,這工作! :) – abolotnov 2011-04-03 11:26:00

+0

@abolotnov - 男人你很快! :-) – 2011-04-03 11:27:41

0

嘗試:

alert($(allImages[id=currentID]).attr('name')); 

我想通過選擇第0個元素,您可以從您想要的答案中選擇第一個字符。

+0

同樣的事情 - 用另一個id給我命名元素(4)。我選擇[0] th元素,因爲$(allImages [id = currentID])將返回一個包含一個元素的數組。 – abolotnov 2011-04-03 10:25:14