Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
jQuery después de reemplazar el valor del atributo obteniendo el valor anterior

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>
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

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.

about 4 years ago · Santiago Trujillo Denunciar

0

Establezca los data y no el attr :

 jQuery(".club_imgs_1").next('span').data('clb-prodctid',281);
about 4 years ago · Santiago Trujillo Denunciar

0

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.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda