2011-10-19 454 views
3

我希望不要刪除或刪除數組中的第一條記錄,並將其追加到我的頁面。我從下面的JSON文件中獲取數據:JSON數組 - 刪除第一個元素

$(data.content).each(function(index, content){ 
    $("#htmlID").append('<span>' + content.myinfo + '); 
}); 
    { 

    "content": 

    [ 
{"myinfo":"Bill Clinton 095 years old. "}, 
{"myinfo":"Bill Clinton 195 years old. "}, 
{"myinfo":"Bill Clinton 295 years old. "}, 
{"myinfo":"Bill Clinton 295 years old. "} 

    ] 
    } 

當我附上我的數據頁面都出來完美的,但我會想跳過第一個元素(索引)......我基本上不想要帶回比爾克林頓095歲的特定輸出。

我該怎麼做? (grep?,刪除,刪除?)。

最簡單的方法是什麼?

回答

2

使用.shift();方法,這樣做,它會移後的第一要素

+0

只記得移回到移位元素;不要根據班次的原因而採取行動,而應根據原始變量的遺留情況採取行動。 –

7

你可能不希望修改數組或JSON,所以只是測試你對哪一個元素,當你執行循環:

$(data.content).each(function(index, content){ 
    if (index>0) { // skips first element 
     $("#htmlID").append('<span>' + content.myinfo + '</span>'); 
    } 
}); 

或者更好的是,只使用老式的for環和保存自己的一些開銷:

for (var i=1; i<data.content.length; i++) { 
    $("#htmlID").append('<span>' + data.content[i].myinfo + '</span>'); 
} 
+0

第一個工作完美!謝謝 –

+1

這也是我的第一本能。簡單,它的作品。當然,即使你喜歡jQuery的.each()函數,也可以使用for循環。這樣你就不會爲每個項目運行if語句。如果你不關心保存JSON,Grigor的方法也不錯。 –

2

如果你只是想跳過網絡第一個項目,這將做到這一點:

$(data.content).each(function(index, content){ 
    if (index > 0) { 
    $("#htmlID").append('<span>' + content.myinfo + '</span>'); 
    } 
}); 
0

怎麼樣一個老式的for循環開始於1指數:

var target = $("#htmlID"); 
for (var i = 1, len = data.content.length; i < len; i++) { 
    target.append('<span>' + data.content[i].myinfo + '</span>'); 
}