2016-12-01 65 views
-1

所以我有以下json值:{"pages": 5}。 Pages表示我擁有的數據數量,我想要做一個循環,它將爲我擁有的頁數創建一個按鈕(5)。目前它不工作,我不太清楚爲什麼。在jQuery中使用json值

這是我已經試過:

$.each(pages, function() { 
       $('body').append(<input type="button"/>) 
       alert(pages) 
       }) 

當我警惕網頁它提供了:在一個警告框{"pages": 5},我想我需要從我到5 for循環做了,但我不噸知道如何參考頁面的價值,即ie 5.

+0

'爲(VAR I = 0; I <頁面;我++){$ ('body')。append(''); }' – mplungjan

+0

使用此[小提琴](https://jsfiddle.net/pandeyvishal1986/588f2b3k/#&togetherjs=kCd283bhj7)。願它幫助! – RonyLoud

回答

2

jquery的each迭代通過數組的值或對象的屬性,它不會迭代給定數字的特定次數。
最重要的是,我認爲你需要首先把json變成一個對象,因爲我相當有信心在這一點上它仍然被認爲是一個字符串:alert不會在對話框中顯示對象(不像console.log)。
後您解析對象,你可以用pages財產

var pagesObj = JSON.parse(pages); 
for(var i = 0; i < pagesObj.pages; i++) { 
    $('body').append('<input type="button"/>'); 
} 
1

您錯過了'

使用

$.each(pages, function() { 
       $('body').append('<input type="button" value="myButton" />') 
       alert(pages) 
       }) 
+0

http://api.jquery.com/jquery.each/ – mplungjan

+2

爲什麼有人投票呢? 「頁面」不是數組或集合。這是一個數字 – mplungjan

2

你的JSON值表示的物體看起來像這樣: -

var json= { 
    pages: 5 
} 

你可以看一下這樣的變量的網頁: -

json.pages 

如果你想通過一個循環迭代它的頁數: -

for(var i = 0; i < json.pages; i++) { 
    ... 
} 
3

看來你有一個,而不是一個javascript 對象使用for循環。使用JSON.parse()解析它作爲一個對象,你應該得到的key, value的功能:

var newPages = JSON.parse(pages), 
    btns = ""; 
for(var i=0; i < newPages.pages; i++){ 
    btns += $('<input>',{ "type"="button"}); 
} 
$('body').append(btns); 
+1

問題要求爲每個頁面輸出一個按鈕的功能,這隻會輸出一個。 – Joe

+0

@Joe同意完全錯過了。 – Jai

+0

@Joe剛剛更新。這將確保有按鈕並在所有按鈕準備就緒時放置它們。 – Jai

2

Working fiddle

var json= { 
    pages: 5 
}; 
var num= json.pages; 
for(var i = 0; i < num; i++) { 
    $('body').append('<input type="button"/>'); 
    alert("Do what ever you want"); 
}