Javascript 动态更改属性时jQuery data()可能存在错误?

Javascript 动态更改属性时jQuery data()可能存在错误?,javascript,jquery,debugging,bug-tracking,Javascript,Jquery,Debugging,Bug Tracking,我不知道我是否刚刚发现了一个潜在的jQuery bug,但请查看以下案例 如果我动态更改数据ajax链接属性,然后尝试使用$('something').data('ajax-link')获取它的值在动态更改之前,检索到的值仍然是旧值 这是一个例子。这是一个自定义下拉列表,用于将单击的选项设置为ul的第一个子项。元素的名称以及第一个子元素的数据ajax链接将使用单击选项的值进行更新 在我的示例中,您可以看到,在下拉列表中选择不同的选项,然后点击测试链接后,数据ajax链接的值仍然是原始值,即使它在

我不知道我是否刚刚发现了一个潜在的jQuery bug,但请查看以下案例

如果我动态更改
数据ajax链接
属性,然后尝试使用
$('something').data('ajax-link')获取它的值在动态更改之前,检索到的值仍然是旧值

这是一个例子。这是一个自定义下拉列表,用于将单击的选项设置为ul的第一个子项。元素的名称以及第一个子元素的数据ajax链接将使用单击选项的值进行更新

在我的示例中,您可以看到,在下拉列表中选择不同的选项,然后点击测试链接后,数据ajax链接的值仍然是原始值,即使它在检查元素时实际发生了更改。如果我使用
.attr('data-ajax-link')
来获得更新的值,它就可以正常工作


我在这里做错了吗?或者这是一个错误吗?

您使用
.attr()
设置它,但使用
.data()
获取它

我很确定,通过
.data()
获取数据时,它首先在
jQuery.cache
中查看其数据,以查看该属性是否存在。如果没有,它将查找属性

您只需通过
data-
属性发送它,但使用
.data()
来获取和设置

更改此项:

selectedOption.text($(this).text()).attr('data-ajax-link', $(this).data('ajax-link'));
为此:

  // Use .data()----------------------v
selectedOption.text($(this).text()).data('ajax-link', $(this).data('ajax-link'));

示例:

您正在使用
.attr()
设置它,但使用
.data()
获取它

我很确定,通过
.data()
获取数据时,它首先在
jQuery.cache
中查看其数据,以查看该属性是否存在。如果没有,它将查找属性

您只需通过
data-
属性发送它,但使用
.data()
来获取和设置

更改此项:

selectedOption.text($(this).text()).attr('data-ajax-link', $(this).data('ajax-link'));
为此:

  // Use .data()----------------------v
selectedOption.text($(this).text()).data('ajax-link', $(this).data('ajax-link'));
示例: