Foros del Web » Programando para Internet » Jquery »

Como obtener el texto de un listado ?

Estas en el tema de Como obtener el texto de un listado ? en el foro de Jquery en Foros del Web. Estimados, recién me estoy familiarizando con estos lenguajes, he logrado hacer algunas cosas pero esto me la gano. Saque este ejemplo de una web, pude ...
  #1 (permalink)  
Antiguo 09/09/2015, 08:14
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 3
Como obtener el texto de un listado ?

Estimados, recién me estoy familiarizando con estos lenguajes, he logrado hacer algunas cosas pero esto me la gano.

Saque este ejemplo de una web, pude cargar los items del listado desde una base de datos, después agregue el código para que al agregar también lo agregue a la tabla, hasta aquí funciona perfecto, pero ahora necesito agregar el código para eliminar cuando el usuario hace clic en la imagen que esta al lado del texto, y no tengo idea como obtener el texto al que hace referencia.

Ejemplo:
http://www.lewebmonster.com/ejemplos...as-con-jquery/

Este es el codigo del js
Código:
$(function(){
	//enfocamos el campo para digitar nombres (cuestion de usabilidad)
	$('#txtNombre').focus();
	
	//evento al hacer clic en el boton agregar
	$('#btnAgregar').on('click',function(){
		//obtenemos el nombre digitado por el usuario, y el limite establecido
		//con la funcion parseInt() convertimos de texto a numero
		var $txtNombre=$('#txtNombre'), iLimite=parseInt($('#selLimite').val());
		
		//verificamos que el campo nombre no este vacio
		if($.trim($txtNombre.val())!=''){
			//variable para contener la lista html
			var $ulLista;
			//si la lista html no existe entonces la agregamos al dom
			if(!$('#divLista').find('ul').length) $('#divLista').append('<ul/>');
			
			//obtenemos una instancia de la lista
			$ulLista=$('#divLista').find('ul');
			
			//verificamos el limite de elementos
			if($ulLista.find('li').length<iLimite || iLimite==0){
				//creamos el item que va a contener el nombre y el boton eliminar
				var $liNuevoNombre=$('<li/>').html('<a class="clsEliminarElemento">&nbsp;</a>'+$.trim($txtNombre.val()));
				
				//verificamos la posicion en la que debemos agregar el nuevo elemento (inicio o final de la lista)
				if($('#chkAgregarAlInicio').is(':checked')){
					//agregamos el elemento al inicio (con prepend)
					$ulLista.prepend($liNuevoNombre);
				}else{
					//agregamos el elemento al final de la lista (con append)
					$ulLista.append($liNuevoNombre);
				}
			//no se pueden agregar mas elementos, debido al limite establecido
			}else{
				alert('No es posible agregar el elemento. Se permiten solamente '+iLimite+'.');
			}
		//el campo nombre esta vacio
		}else{
			alert('Por favor, digite el nombre que desea agregar a la lista.')
		}
		//limpiamos el campo nombre y lo enfocamos
		$txtNombre.val('').focus();
	});
	
	//evento al hacer clic en el boton eliminar de cada item de la lista
	//se debe usar "live", ya que son elementos generados donamicamente
	$('.clsEliminarElemento').live('click',function(){
		//buscamos la lista
		var $ulLista=$('#divLista').find('ul');
		//buscamos el padre del boton (el tag li en el que se encuentra)
		var $liPadre=$($(this).parents().get(0));
		
		//eliminamos el elemento
		$liPadre.remove();
		//si la listaesta vacia entonces la eliminamos del dom
		if($ulLista.find('li').length==0) $ulLista.remove();
	});
	
	//eliminamos los elementos impares en la lista (odd)
	$('#btnEliminarPares').on('click',function(){
		$('#divLista ul li:odd').remove();
	});
	
	//eliminamos los elementos pares en la lista (even)
	$('#btnEliminarImpares').on('click',function(){
		$('#divLista ul li:even').remove();
	});
	
	//eliminamos la lista del dom
	$('#btnEliminarTodo').on('click',function(){
		$('#divLista ul').remove();
	});
	
	//al presionar <ENTER> sobre el campo txtNombre llamamos al boton (usabilidad otra vez)
	$('#txtNombre').on('keypress',function(eEvento){
		if(eEvento.which==13) $('#btnAgregar').trigger('click');
	});	
});

Aqui debo agregar el codigo para eliminar el registro
Código:
	//evento al hacer clic en el boton eliminar de cada item de la lista
	//se debe usar "live", ya que son elementos generados donamicamente
	$('.clsEliminarElemento').live('click',function(){

                 //Aqui agregar el codigo para eliminar el registro
                //          Obtener el texto donde se hizo clic en la imagen para eliminar
                //          Llamar a la rutina para eliminar  y enviar el id y texto

		//buscamos la lista
		var $ulLista=$('#divLista').find('ul');
		//buscamos el padre del boton (el tag li en el que se encuentra)
		var $liPadre=$($(this).parents().get(0));
		
		//eliminamos el elemento
		$liPadre.remove();
		//si la listaesta vacia entonces la eliminamos del dom
		if($ulLista.find('li').length==0) $ulLista.remove();
	});

de antemano muchas gracias
__________________
Saludos
Leo
  #2 (permalink)  
Antiguo 09/09/2015, 14:04
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 16
Respuesta: Como obtener el texto de un listado ?

Buenas compañero,

Haz obten el html() del padre y elimina el elemento que tiene la imagen, así te quedarías sólo con el texto...
Aunque yo, preferiría meter el texto dentro de un span, y usar el selector "span" del padre de la imagen... ;D


Un saludo!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #3 (permalink)  
Antiguo 10/09/2015, 05:55
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: Como obtener el texto de un listado ?

Cita:
Iniciado por Drako_18 Ver Mensaje
Buenas compañero,

Haz obten el html() del padre y elimina el elemento que tiene la imagen, así te quedarías sólo con el texto...
Aunque yo, preferiría meter el texto dentro de un span, y usar el selector "span" del padre de la imagen... ;D


Un saludo!!
Eso lo puedo hacer, solo debo cambiar esta linea:

Código:
var $liNuevoNombre=$('<li/>').html('<a class="clsEliminarElemento">&nbsp;</a><span>'+$.trim($txtNombre.val())+'</span>');
Pero como tendría que hacer la lectura en el otro lado, me podrías indicar algún ejemplo.

Saludos
__________________
Saludos
Leo
  #4 (permalink)  
Antiguo 10/09/2015, 07:26
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 16
Respuesta: Como obtener el texto de un listado ?

Buenas compañero,

Esto podría ser un ejemplo:
$(".clsEliminarElemento").on("click", function (e){
$(this).parent().children("span").html();
});
Con esto conseguirías obtener el texto que haya dentro del span que está dentro del padre del elemento que tenga la clase clsEliminarElemento, que creo es lo que necesitas no¿?


Un saludo!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #5 (permalink)  
Antiguo 14/09/2015, 07:29
 
Fecha de Ingreso: julio-2002
Ubicación: stgo rec
Mensajes: 438
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: Como obtener el texto de un listado ?

Cita:
Iniciado por Drako_18 Ver Mensaje
Buenas compañero,

Esto podría ser un ejemplo:
$(".clsEliminarElemento").on("click", function (e){
$(this).parent().children("span").html();
});
Con esto conseguirías obtener el texto que haya dentro del span que está dentro del padre del elemento que tenga la clase clsEliminarElemento, que creo es lo que necesitas no¿?


Un saludo!!
Gracias por tu ayuda Drako, me funciono perfecto en mi web

Solo agregue esta linea dentro del evento clic al eliminar y con ella obtengo el texto y lo asigno la variable textodel.

Código:
var textodel=$(this).parent().children("span").html();
__________________
Saludos
Leo

Etiquetas: listado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.