[英]jQuery doesn't returns the new data-attribute
我正在嘗試使用data-attr和jQuery進行非常簡單的任務,請檢查以下示例:
標記 :
<div data-name="Testing"></div>
JS
$(function(){
var div = $('div');
$(div).append($(div).data('name'));
$(div).attr('data-name', ' - Testing 2');
$(div).append($(div).data('name'));
console.log(div);
});
您可以在這里進行測試: http : //jsfiddle.net/YsKJJ/16/
因此,應在div
內附加文本Testing - Testing 2
,但打印TestingTesting
。 在控制台中,我檢查對象中的attr是否已更改,是的,具有新值- Testing 2
但jQuery仍返回原始值:(
任何想法?
更新:
因此,根據jQuery文檔這種行為的原因:
數據屬性在第一次訪問數據屬性時被提取,然后不再被訪問或變異(所有數據值然后內部存儲在jQuery中)。
更多信息: jQuery Data vs Attr?
您正在更改屬性,但這不會自動更新數據。 這有效:
$(function(){
var div = $('div');
div.append(div.data('name'));
div.data('name', ' - Testing 2');
div.append(div.data('name'));
});
工作演示 http://jsfiddle.net/DDv8U/
$(div).data('name', ' - Testing 2');
休息應該適合需要:)
碼
$(function(){
var div = $('div');
$(div).append($(div).data('name'));
$(div).data('name', ' - Testing 2');
$(div).append($(div).data('name'));
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.