【发布时间】:2011-03-29 23:28:50
【问题描述】:
我对 JS 和 jQuery 还很陌生。
我在访问从 jQuery ajax 方法返回的对象的属性时遇到问题。
正如您在下面的代码中看到的,我正在尝试使用成功回调函数中对象“数据”的属性来创建表格行,然后我尝试将其添加到表格中。
$('#add_comp').submit(function(){ var startDate = $('#form_startDate').val(); var initPrize = $('#form_init_prize').val(); var active = $('#form_active').val(); var dataString = 'startDate=' + startDate + '&startPrize=' + initPrize + '&active=' + active; $.ajax({ 类型:'POST', url: "/admin/competition/add-competition", 数据:数据字符串, 成功:函数(数据,文本状态,xhr){ 控制台.log(数据); 控制台.log(data.startDate); 控制台.log(数据[开始日期]); console.log(data['startDate']); var tr = '\n\ '+ 数据["开始日期"] +'\n\ '+ data.active +'\n\ '+ data.currentPrize +'\n\ '; $('#competition_table').find('tr:last').after(tr); }, 错误:函数(){ alert('出现错误,请咨询应用开发者。'); } });success 函数有点混乱,因为我正在尝试多种不同的方式来访问数据对象的属性。
第一行 console.log(data) 在 Firebugs 控制台中返回以下内容:
这确认数据对象存在并且具有正确的属性。
我假设我应该能够使用“data.propertyName”访问各个属性,但是所有后续的 console.log() 调用都返回“未定义”。
如何正确访问这些属性并使用它们来构建表格行?
【问题讨论】:
-
只是一个建议:你真的应该使用
serialize,而不是手动构建你的传输数据。 api.jquery.com/serialize -
感谢您的建议。我刚刚看了手册-你的权利这样做会容易得多! :)
标签: javascript jquery ajax jquery-events