jQuery:使用数据对象作为数据属性创建锚点

时间:2014-06-30 15:27:44

标签: jquery jquery-mobile

我在创建具有数据对象(patientData)作为数据患者属性的锚时遇到问题。这个例子显示了我试图做的事情。 jQuery文档声明你可以传递.data()一个名称和对象,但是我无法设置它。

http://api.jquery.com/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);

修改:我刚才注意到了这个例子:

http://api.jquery.com/data/

在示例中,他们使用带对象数据的DIV。

$( "div" ).data( "test", { first: 16, last: "pizza!" } );

1 个答案:

答案 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);