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