我目前正在使用jQuery mobile和Phonegap制作已下载和未下载文件的列表。
一切似乎都运行正常,但我无法将值设置为我的属性data-status
。
我循环遍历JSON中的文件名列表以检查它们是否存在,这很有效。这是每个文件发生的事情:
var $li;
$li = $("<li><a href='#' data-status='Not downloaded'>"+val.title+"</a></li>");
然后,如果在系统上找到该文件:
$li.find("a").on("click", function(){ openPdf(val.title); }); // a click handler added
$li.find("a").setAttribute('data-status', 'Downloaded'); // This is where something is wrong.
对于每个文件,$ li附加到ListView。然后在整个循环过程之后:
$("#linkList")
.listview({
autodividers: true,
autodividersSelector: function (li) {
var out = li.find('a').data("status");
return out;
}
}).listview('refresh');
那么,为什么属性data-status
没有被改为“已下载”的任何想法?
答案 0 :(得分:2)
您应该使用以下内容:
$li.find("a").data('status', 'Downloaded');
如果您必须使用setAttribute
,请使用attr()
:
$li.find("a").attr('data-status', 'Downloaded');
答案 1 :(得分:2)
$li.find("a")
返回一个名为&#34;包装集的jQuery对象,&#34;这是一个类似于数组的结构,包含所有选定的DOM元素
$li.find("a")[0].setAttribute