我有一个带有数据属性data-kr-id
的跨度标签。单击列表中不同项目时,我将更新该跨度的data-kr-id
属性,并且该属性也会更新。
当我使用jQuery的first time
方法检索data-kr-id
的this(data
)值时,我得到了正确的值。但是从随后的时间开始,我总是得到与第一次相同的值。但是在使用jQuery的attr
函数时,我得到了正确的值。不知道为什么。
代码:设置data-kr-id
值的位置:
$_applozicWtLauncherBtn.attr('data-kr-id', seller.UserId);
代码:我在哪里检索值:
var topicId = $applozic(this).data("kr-id");
topicId = $applozic(this).attr("data-kr-id");
在上面的代码中,我使用data
方法给我旧值(我检索到的第一项的值),但是使用attr
方法给了我正确的值。
更新:
正如大家所知,我正在使用
attr
方法设置数据属性,并使用data
方法检索值。在使用data
方法设置属性之后,当我检索值时,我得到的是空字符串。深入研究之后,I realized there are two different versions of the jQuery are being used here
。抱歉,信息不完整,更新太晚了。
答案 0 :(得分:0)
您仅使用find
设置值,第二次使用find . -name '*.py' -print | while read FILE; do zip `echo $FILE|sed 's/\py$//'`zip $FILE; done
设置attr
值时,数据值保持不变,因此也需要使用data-kr-id
设置值< / p>
attr
答案 1 :(得分:0)
实际上,jquery的.data()
是从属性(与.prop()
相同)而不是从属性中获取值。主要区别在于.attr()
从HTML标记中获取数据,当您使用.attr()
更新数据时,您会看到它会反映在HTML上。但是,当您使用.prop()
或.data()
时,它不会反映在HTML标记中,但是会根据DOM树更新该HTML标记的属性值。
您将找到有关difference property and attribute from here的更多信息。
最初,此属性将在创建元素时设置。因此,您的.data()
和.attr()
第一次可以正常工作。当您从.attr()
更新值时,它将操作DOM,但属性将保持不变。