我在img之后使用属性为clb-prodctid,其值为280。
这是一个密切的形象&有背景关闭图像。
我正在使用函数将data-clb-prodctid="280"
替换为data-clb-prodctid="281"
替换工作正常,并正确分配新值。
但是当我试图获得该值时,它给我的旧值为280。
页面刷新后,我得到新值为281。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<img name="plus_icon" class="club_imgs imagefile club_imgs_1" data-clubprodnum="280" src="square.jpg">
<span class="close_button close-btn-icon" onclick="removeproduct(this)" data-clb-prodctid="280">X</span>
<script>
function removeproduct(datas){
var remove_productId = jQuery(datas).data("clb-prodctid");
alert(remove_productId);
jQuery(".club_imgs_1").next('span').attr('data-clb-prodctid',281);
}
</script>
</body>
</html>
答案 0 :(得分:1)
设置data
而不是attr
:
jQuery(".club_imgs_1").next('span').data('clb-prodctid',281);
答案 1 :(得分:0)
问题是因为您正在使用data()
从jQuery缓存中读取数据,但attr()
仅在DOM中设置新值。因此忽略了新值。
要解决此问题,请使用data()
的设置器,如下所示:
jQuery(function($) {
$('.close_button').click(function() {
var remove_productId = $(this).data("clb-prodctid");
console.log(remove_productId);
$(".club_imgs_1").next('span').data('clb-prodctid', 281);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img name="plus_icon" class="club_imgs imagefile club_imgs_1" data-clubprodnum="280" src="square.jpg">
<span class="close_button close-btn-icon" data-clb-prodctid="280">X</span>
&#13;
另请注意,在上面的示例中,首选使用不显眼的事件处理程序而不是过时的on*
事件属性。
答案 2 :(得分:0)
此外,如果你使用.on(&#39;点击&#39;,())而不是.click方法会更好,当你使用动态元素时,这两种方法会有所不同。