我一直在拼命尋找這個問題的答案,但沒有找到任何東西。 我目前正在改進我創建的網站上的代碼,從「自定義」屬性切換到HTML5數據 - yyy屬性。現在繼承我的問題。jQuery removeAttribute()不工作
$("#test ul li").click(function(event){
$(this).toggleClass("selected");
if($(this).hasClass("selected")){
if(jQuery.trim($("#input_value").val())){
$(this).data("special",{"value":jQuery.trim($("#input_value").val())});
}
}
else{
$(this).removeAttr("data-special");
}
});
單擊某個li元素時會觸發以下代碼。一個類被切換,並且在切換之後(這是一個單詞?)腳本檢查該元素是否具有切換的類。如果它沒有類(這是問題所在),腳本應該刪除屬性「data-special」,刪除數據。這根本不會發生!
如果添加
$("#test ul li").removeAttr("data-special");
的功能外,它的所有罰款和按預期工作。有任何想法嗎?
謝謝!有趣的是,這是我開始做的事情,我必須在我的代碼中有一個錯誤,因爲它似乎沒有工作,當我沒有搜索答案並發現這個:http://bugs.jquery。 com/ticket/10784,並且我理解(或誤解)這是爲了將data-yyy視爲刪除的屬性。 還有一件事,或者根本就不要在第一個地方使用.data()。我不應該使用.data()?你不喜歡它? – 2012-02-17 08:06:14
@BenediktÓmarsson:不客氣。關於使用'.data()',如果您需要存儲複雜的數據,它會很有用。例如,你似乎在存儲一個對象。 '{value:「特殊值」}'如果你真的需要一個對象來添加和刪除屬性,那麼'.data()'可能會有用。但是如果你所做的只是讀取'data-'屬性的值,那麼我可能只是使用'.attr()',因爲它更快一些,並且不會在jQuery中增加任何額外的東西.cache'。 – 2012-02-17 14:28:44
我明白。我正在寫的這個應用程序在複雜的一面(至少對我來說,這是一個新的業務)。我習慣用戶.attr()和我使用自定義屬性,如