JQuery Mobile 中带有字符串数组的数据属性

Data attribute with string array in JQuery Mobile

http://jsfiddle.net/673h38g9/17/

我试图通过 Jquery 移动设备获取一组数据属性,但它显示未定义。

<div data-stuff="['a','b','c']"></div>

var vendoritems = $('div').data('stuff');
alert(vendoritems);
var myid = 'd';
if (vendoritems.indexOf(myid) > -1) {
    $('div').data('stuff', vendoritems.push(myid))
    var vendoritemsss = $('div').data('stuff');

}

JQuery Mobile 不支持数据属性数组吗?

你必须

  • 运行 你的 JQuery 代码当 onDomReady
  • 将您的字符串数据放在双引号中(参见 JSON spec
  • 通过 id
  • 访问您的 div
  • 尊重array.push return类型(长度,不是数组)

工作Fiddle:http://jsfiddle.net/673h38g9/18/

var vendoritems = $('#data').data('stuff');
alert(vendoritems);
var myid = 'd';
if (vendoritems.indexOf(myid) < 0) {
    vendoritems.push(myid);
    $('#data').data('stuff', vendoritems);
    var vendoritems2 = $('#data').data('stuff');
    alert(vendoritems2);
}

Html:

<div id="data" data-stuff='["a","b","c"]'></div>