2015-04-05 59 views
0

我目前正在使用jQuery mobile和Phonegap製作下載和未下載文件的列表。使用jQuery設置HTML5屬性值的問題

一切似乎工作正常,但我根本無法將值設置爲我的屬性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. 

對於每一個文件,在$裏被追加到ListView。然後整個循環過程後:

$("#linkList") 
      .listview({ 
      autodividers: true, 
      autodividersSelector: function (li) { 
         var out = li.find('a').data("status"); 
         return out; 
         } 
        }).listview('refresh'); 

那麼,爲什麼屬性data-status沒有被更改的任何想法,「已下載」?

回答

2

你應該使用下列內容:

$li.find("a").data('status', 'Downloaded');

如果你必須使用setAttribute,然後用attr()去:

$li.find("a").attr('data-status', 'Downloaded');

+0

我試過了一個第一,但不知何故,他們都最終排序爲「未下載」。所以看起來他們沒有改變。 – janlindso 2015-04-05 00:27:43

+1

這是在jQuery中使用數據屬性的正確方法。你應該試試這個。 – tanaydin 2015-04-05 00:30:45

+0

增加了另一個使用'attr'作爲替代的例子。 – 2015-04-05 00:31:09