[英]How to get JSON and show it with unordered list in HTML?
我有看起來像的JSON:
{
"fID": "00202020243123",
"name": "John Doe",
"List": ["Father", "Brother", "Cousin"]
}
我正在從模型中渲染此JSON元素,並且在html內,我可以簡單地看到JSON的內容。 但是,當我嘗試在腳本中執行此操作時,它什么也不做。
我想做的是獲取List屬性,並在HTML的無序列表中顯示它。
這是我到目前為止嘗試過的:
<script>
$("input[name=loadmyJson]").click(function() {//on button click
var items = [];
var myJ = ${json}; //Json element i created in my controller
var myVar = myJ.parseJSON();
$.each(data, function(myVar) {
items.push('<li>' + myVar.List + '</li>');
});
$('#myList').append( items.join('') );//myList is my unordered list's id.
)};
</script>
編輯:我需要為parseJSON()
函數添加一些東西嗎?
我會認真研究jquery的模板引擎,例如json2html (專門將json轉換為html)。 比起嘗試編寫自己的方法以從源json對象構建html而言,使生活容易得多。
請注意,我將列表從字符串數組改為對象(使其更易於訪問)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://json2html.com/js/jquery.json2html-2.3-min.js"></script>
<div id='list'></div>
<script>
var json =
{
"fID": "00202020243123",
"name": "John Doe",
"List": [{label:"Father"}, {label:"Brother"},{label:"Cousin"}]
};
var transform = {tag:'span',html:'.label'};
$('#list').json2html(json.List, transform);
</script>
關於什么:
var myVar = myJ.parseJSON();
$.each(myVar.List, function(key, value) {
items.push('<li>' + value + '</li>');
});
$('#myList').append( items.join('') );//myList is my unordered list's id.
)};
??
如我的評論中所述,jQuery.each具有參數key
和value
。 變量this
是等於值( arguments[1]
相同的jQuery(“選擇”)。每個具有參數key
和element
,其中所述可變this
等於element
( arguments[1]
好的:
var myVar = myJ.parseJSON();
還必須替換為:
var myVar = jQuery.parseJSON(myJ);
抱歉,沒有看到它:)
您想遍歷對象上的List
數組。
var myVar = myJ.parseJSON();
$.each(myVar.List, function(index, el) {
items.push('<li>' + el + '</li>');
});
您可以直接將其添加,例如:
var parent = $("#myList");
$.each(myJ.parseJSON().List, function() {
$("<li></li>").html(this).appendTo(parent);
});
這是一些HTML
<pre></pre>
然后這段JavaScript
$('pre').text( JSON.stringify(mJ, null, "\t") );
它將像這樣呈現您的JSON
{
"fID": "00202020243123",
"name": "John Doe",
"List": [
"Father",
"Brother",
"Cousin"
]
}
最后,您可以使用類似jQuery Snippet的外觀使其漂亮
$('pre').snippet('javascript');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.