我在创建具有数据对象(patientData)作为数据患者属性的锚时遇到问题。这个例子显示了我试图做的事情。 jQuery文档声明你可以传递.data()一个名称和对象,但是我无法设置它。
我尝试了很多不同的方法。他们不使用任何.serialize()或JSON.stringify()。我认为这是一个简单的错误,或者我错过了一些重要的事情。评论" //"我试图设置“数据患者”的一些旧方法。属性为数据对象。
// Define patient data as object
var patientData = {};
if (appt.appt_id) patientData.appt_id = appt.appt_id;
if (appt.enc_id) patientData.enc_id = appt.enc_id;
if (appt.person_id) patientData.person_id = appt.person_id;
var patientAnchor = $('<a />', {
href: myUrl,
html: patientHtml,
class: 'apptSet',
// 'data-patient': JSON.stringify(patientData),
// 'data-appt_id': (appt.appt_id) ? appt.appt_id : null,
// 'data-enc_id': (appt.enc_id) ? appt.enc_id : null,
// 'data-person_id': (appt.person_id) ? appt.person_id : null,
'data-ajax': 'true'
}).data('patient', patientData);
console.log(patientAnchor);
修改:我刚才注意到了这个例子:
在示例中,他们使用带对象数据的DIV。
$( "div" ).data( "test", { first: 16, last: "pizza!" } );
答案 0 :(得分:1)
您确定数据属性不起作用吗?您将patientData作为任何空对象,因此如果未定义appt属性,则patientData仍为空:
if (appt.appt_id) patientData.appt_id = appt.appt_id;
if (appt.enc_id) patientData.enc_id = appt.enc_id;
if (appt.person_id) patientData.person_id = appt.person_id;
尝试执行以下操作以查看患者的数据:
console.log(patientAnchor.data('patient'));
另外,尝试静态设置它,看看是否有效:
.data('patient', {appt_id: 12, enc_id: 23, person_id: 3);