用Javascript中的JSON数组填充HTML
Populate HTML with JSON array in Javascript
这个问题已经被问了好几次了,但我还没有看到任何对我有效的回答。
我有一段用cakeHP构建的代码,它成功地返回了JSON格式的数据,但我还无法使用Javascript将这些JSON数据插入到HTMLdiv中。
$('.book-click').click(function (e) {
e.preventDefault();
var getHotel = $(this).attr('hotel-id');
$.ajax({
type: "POST",
url: "<?php echo $this->Html->URL(array('action' => 'postBook')); ?>",
data: {
hotel: getHotel
},
cache: false,
dataTye: "json",
success: function (JSONObject) {
var myData = "";
for (var key in JSONObject) {
if (JSONObject.hasOwnProperty(key)) {
myData += JSONObject[key];
}
}
/*console.log(myData);*/
alert(myData[key]["hotelname"]); //Giving undifined in alert
}
});
});
这是我在浏览器控制台上记录数据时得到的JSON数据:
[
{
"id": "11",
"hotelname": "Sheraton hotel",
"hoteladdress": "Abule Ikeja",
"state": "Lagos State",
"lga": "Ikeja",
"hotelphone": "65645545454",
"hotelwebsite": "",
"adminphone": "6565656565",
"adminemail": "mail@hotel.com",
"hotelemail": "",
"facilities": ",,",
"roomscategory": "Diplomatic",
"standardrate": "150000",
"leanrate": "",
"aboutHotel": "",
"requestStatus": "0",
"createdOn": "1424360902",
"updatedOn": "1424360902"
}
]
如何成功地将JSON数据转换为HTML。类似这样的东西:
$('#myDiv').html(myData[key]["hotelname"]);
我试过这个,但它只是给了我Undefined
。
感谢您的帮助。
使用$.each()
迭代:
success: function (JSONObject) {
$.each(JSONObject, function(k,item){
$('#myDiv').html(item.hotelname);
});
}
var json = [
{
"id": "11",
"hotelname": "Sheraton hotel",
"hoteladdress": "Abule Ikeja",
"state": "Lagos State",
"lga": "Ikeja",
"hotelphone": "65645545454",
"hotelwebsite": "",
"adminphone": "6565656565",
"adminemail": "mail@hotel.com",
"hotelemail": "",
"facilities": ",,",
"roomscategory": "Diplomatic",
"standardrate": "150000",
"leanrate": "",
"aboutHotel": "",
"requestStatus": "0",
"createdOn": "1424360902",
"updatedOn": "1424360902"
}
]
$.each(json, function(i, item){
$('body').append(item.hotelname);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
根据您的错误,您似乎要么没有有效的json,要么是json字符串。所以在环入之前,你必须解析它:
success: function (JSONObject) {
var data = $.parseJSON(JSONObject); // parse it
$.each(data, function(k,item){
$('#myDiv').html(item.hotelname);
});
}
var myData = "";
for (var key in JSONObject) {
if (JSONObject.hasOwnProperty(key)) {
myData += JSONObject[key];
}
}
这里的CCD_ 3只是一个CCD_。因此,调用myData[key]["hotelname"]
将返回undefined,因为您试图访问不存在的东西。
为什么不直接使用Ajax调用的结果呢?
相关文章:
- 单击鼠标,用MySQL数据填充html表单输入字段
- 使用字符串数组中的字符填充 HTML 表
- 在选择下拉选项时,从mysql数据库填充HTML表单字段
- 试图用随机选择的单词填充html中的ul.JS
- 用Javascript中的JSON数组填充HTML
- 用用户上次登录时选择的内容填充html表单
- 使用Javascript和html从Google电子表格中填充html代码
- 如何设置iframe以自动填充HTML中的空白正文空间
- 使用 JS 填充 HTML 表,数据顺序错误
- 隐藏 iPad 键盘时,即使在重置后也会预先填充 HTML 表单字段值
- 用变量预填充 HTML 值
- 根据在上一个视图中选择的列表项动态填充 HTML 模板
- 使用 javascript 从 jsondata.json 文件填充 html 表
- 填充 HTML,选择“使用第一个输入标记”
- 用 JSON 数据填充 HTML
- 通过 JavaScript 函数填充 HTML 下拉菜单
- 如何使用 vkTemplate 用 JSON 对象填充 html
- 使用本地日期填充 HTML 日期时间字段
- 如何通过自动填充html列表为用户制作搜索字段
- 如何为数据库中的不同记录/行创建用户生成的链接列表,这些记录/行在单击时填充 html 表单