¿Cómo elimino una clase de elemento después de éxito?

Cuando el usuario hace clic en un botón en el formulario asociado a su imagen, me gustaría que la imagen desaparezca si tiene éxito. Tengo problemas para implementar esto. ¿Algún consejo?

 $(document).ready(function() { $(".removebutton").submit(function(event){ event.preventDefault(); $.ajax({ type:"POST", url:"/munch_video/", data: { 'video_id': $('.video_id', this).val(), // from form 'playlist': $('.playlist').val(), // from form 'add_remove': $('.add_remove').val(), // from form }, success: function(message){ alert(message); $('.span8').removeClass('.video_id', this); } }); return false; }); });   

Primero su ubicación de event.preventDefault(); Porque detendrá la ejecución por defecto.

Entonces debería ser solo la statement de devolución.

En segundo lugar, no necesita agregar ningún otro parámetro para removeClass por lo que será como

 $this.closest('.image').remove(); 

Donde $this es una ref. si $(this)

En tercer lugar, no pude encontrar ningún elemento con la clase span8 video_id con el video_id Por lo tanto, es necesario dar un código completo o volver a verificar todos los elementos una vez más.

Por último, también revisa el código php si está dando el resultado correcto o enviando cualquier error

Prueba esto.

 $(".removebutton").submit(function(event){ var $this = $(this); $.ajax({ type:"POST", url:"/munch_video/", data: { 'video_id': $('.video_id', this).val(), // from form 'playlist': $('.playlist').val(), // from form 'add_remove': $('.add_remove').val(), // from form }, success: function(message){ alert(message); $this.closest('.image').remove(); } }); event.preventDefault(); return false; }); 

$('.span8').removeClass('video_id') no dot en los parámetros de las clases

Editar: como pediste img para ser eliminado de un div

 $('.span8').find('img').remove() 

para eliminar todas las imágenes en el div,

 $('.span8').find('img.video_id').remove() 

para eliminar imágenes img con la clase video_id,

si solo quieres ocultar el elemento

 $('.span8').find('.video_id').hide() 

removeClass toma solo el className y no es necesario proporcionar un elemento selector dentro de él

 $('.span8').removeClass('video_id'); 

Gracias

No puedo ver por qué la imagen desaparecería ya que no hay nada cambiando su visualización. Qué tal esto:

 $('.span8').removeClass('video_id').addClass('goaway'); 

y agrega css .goaway { display:none; } .goaway { display:none; }

Comenzaría con su llamada a .removeClass () . Solo se necesita un argumento, this se ignora. Y el nombre de la clase no necesita un punto al frente.

 //$('.span8').removeClass('.video_id', this); $('.span8').removeClass('video_id'); 

Editar: Parece que deberías trabajar en tu recorrido. Asumiré que tienes un botón y una imagen dentro de una

, algo así como el siguiente

  

Entonces necesitarías moverte de tu objective, hasta el div, y desglosar el img.

 $(this).closest('.span8').find('img').remove(); 

removeClass () toma el nombre de la clase, no el selector de la clase. En otras palabras, quieres deshacerte del punto.

 $('.span8').removeClass('video_id');