Tengo un intervalo después de img con el atributo clb-prodctid y su valor es 280.
Es una imagen cercana y tiene una imagen cercana de fondo.
Estoy usando la función para reemplazar data-clb-prodctid="280" a data-clb-prodctid="281"
Reemplazar funciona bien y asigna un nuevo valor correctamente.
Pero cuando trato de obtener el valor, me da un valor anterior de 280.
Después de actualizar la página, obtengo un nuevo valor como 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>El problema se debe a que está utilizando data() para leer los datos del caché de jQuery, pero attr() para establecer el nuevo valor solo en el DOM. Por lo tanto, el nuevo valor se ignora.
Para solucionar esto, use el setter de data() , así:
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); }); }); <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> Tenga en cuenta también el uso preferido de un controlador de eventos discreto en lugar de un atributo de evento on* obsoleto en el ejemplo anterior.
Establezca los data y no el attr :
jQuery(".club_imgs_1").next('span').data('clb-prodctid',281);y, además, sería mejor si usa el método .on('click',()) en lugar del método .click, estos dos actúan de manera diferente cuando trabaja con elementos dinámicos.