jQuery数据函数返回第一个值

时间:2018-06-29 03:46:39

标签: javascript jquery

我有一个带有数据属性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

     

抱歉,信息不完整,更新太晚了。

2 个答案:

答案 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,但属性将保持不变。