簡體   English   中英

jQuery不返回新的數據屬性

[英]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/

休息應該適合需要:)

$(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM