javascript - 使用 jQuery 设置 HTML5 属性值时出现问题

标签 javascript jquery html cordova

我目前正在使用 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 没有更改为“已下载”吗?

最佳答案

您应该使用以下内容:

$li.find("a").data('状态', '已下载');

如果您必须使用setAttribute,则使用attr():

$li.find("a").attr('数据状态', '已下载');

关于javascript - 使用 jQuery 设置 HTML5 属性值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452837/

相关文章:

javascript - 如何将文本更改为不可见,但仍显示下划线?

javascript - 如何在javascript方法链中填充输入参数?

html - 前置标签添加新行

html - Internet Explorer 中的边框和轮廓重叠

javascript - 从 Sketch 到 React Js 有哪些可用选项?

javascript - 如何设置首先触发的事件?

JavaScript 范围问题/错误

jquery - 使用 jquery 创建 html

javascript - Mysql查询时间问题?

javascript - Jquery延迟功能不起作用