gpt4 book ai didi

javascript - 动态 jQuery 对话框从循环内传递 JSON 对象

转载 作者:行者123 更新时间:2023-12-01 05:38:32 25 4
gpt4 key购买 nike

我想知道是否有比我当前的实现更好(更干净?)的方法。我目前正在编码 PHP SimpleXMLObject (USPS Tracking API) 转换为 JSON,并通过 Javascript 循环访问所述 JSON 对象来操作前端。

下面是我当前实现的示例:

.ready() 之外匿名实现的显示对话框的函数:

var moreInfo_popup = function(i) {
$('#moreinfo'+i).dialog({
modal:false,
autoOpen:false,
height:555,
title: 'Detailed View',
width:500,
draggable:false,
buttons: {
Ok: function(){
$(this).dialog("close");
}
}
});

$('#moreinfo'+i).dialog('open');

}

用于显示每个 API 响应的跟踪 ID、最近事件和邮件类别的主循环 - 我当前正在生成附加到 #modal_container 的内容 div ,然后调用moreInfo_popup()内联通过 <input onClick=""> :

for(var key in obj) {
if(obj.hasOwnProperty(key)) {
if(key % 2 === 0) {
$('#page-nav').append("<div id=\"results_table\"><table class=\"data_table\"id=\"data_table_id\"border=\"0\"width=\"60%\"align=\"center\"><tr><td align=center width=20%>"+obj[key].TrackInfo.Attributes.ID+"</td><td align=\"center\"width=\"35%\">"+obj[key].TrackInfo.StatusSummary+"</td><td align=\"center\"width=\"20%\">"+obj[key].TrackInfo.Class+"</td><td align=\"center\"><input type=\"button\"class=\"moreInfo\"value=\"Detail\"id=\"_buttonMoreInfo\"onClick=\"moreInfo_popup("+key+")\"></td></tr></table></div>");

$('#modal_container').append("<div id=\"moreinfo" + key + "\"><table><tr><td>" + obj[key].TrackInfo.Attributes.ID +"</td></tr></table>").hide();
}
else {
$('#page-nav').append("<div id=\"results_table\"><table class=\"data_table_even\" id=\"data_table_id\" border=0 width=60% align=center><tr><td align=center width=20%>"
+ obj[key].TrackInfo.Attributes.ID + "</td><td align=center width=35%>" + obj[key].TrackInfo.StatusSummary + "</td><td align=center width=20%>"
+ obj[key].TrackInfo.Class + "</td><td align=\"center\"><input type=\"button\" value=\"Detail\" class=\"moreInfo\" id=\"_buttonMoreInfo\"onClick=\"moreInfo_popup("+key+")\"></td></tr></table></div>");

$('#modal_container').append("<div id=\"moreinfo" + key + "\"><table><tr><td>" + obj[key].TrackInfo.Attributes.ID +"</td></tr><tr><td> <button>OK</button></td></tr></table>");


}

}

$("#page-nav td:contains('undefined')").html("Invalid");
}

正如我确信您所看到的,这感觉像是一种实现预期结果的极其乏味的方法,当然还有更好的选择。作为 JavaScript/jQuery 的新手,我已经在这个主题上进行了大量搜索,但并没有真正理解我所发现的内容 - 如果我确实首先提出了正确的问题的话。

最佳答案

我认为你可以使用 Angular 和数据绑定(bind):

因此,您只需使用指令即可自动将服务器端的 JSON 对象轻松绑定(bind)到 html 元素。

但是你应该开始学习 Angular。

您可以在这里开始寻找优雅的做事方式: https://docs.angularjs.org/tutorial/step_04

希望它有用。

关于javascript - 动态 jQuery 对话框从循环内传递 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com