Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] obtener el texto anterior

Estas en el tema de obtener el texto anterior en el foro de Javascript en Foros del Web. Buenas noches. tengo el siguiente problema @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < p > cantidad < input type = "text" id = "campo" value ...
  #1 (permalink)  
Antiguo 28/04/2016, 19:07
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 10 meses
Puntos: 2
obtener el texto anterior

Buenas noches.
tengo el siguiente problema
Código HTML:
Ver original
  1. <p>cantidad<input type="text" id="campo" value="4"></p>

lo que nesecito es saber como obtener el valor "cantidad" que se encuentra
inmediatamente anterior al <input text>

He probado en javascript lo siguiente y no me da el resultado esperado:

Código Javascript:
Ver original
  1. //tomo el id campo
  2. var campoActual=document.getElementById("campo");
  3. //voy al nodo anterior y muestro su valor
  4. alert(campoActual.previousSibling.nodeValue);//este da: undefined
  5. alert(campoActual.previousSibling.value);// este no da nada
  6. alert(campoActual.previousSibling.textContent);//este da undefined

pero nesecito es que me diga por ejemplo:
cantidad 3
y no se me dan las cosas
  #2 (permalink)  
Antiguo 29/04/2016, 05:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: obtener el texto anterior

Como la caja de texto está incluida en el párrafo que contiene a la palabra que deseas tomar, necesitas acceder al elemento ancestro de la caja de texto mediante la propiedad parentNode y tomar de él al texto, separándolo de la etiqueta HTML mediante una expresión regular:
Código Javascript:
Ver original
  1. campoActual.parentNode.innerHTML.match(/[^<.*>]+/)[0];

De esta manera, se tomará, del contenido del elemento ancestro de la caja de texto, es decir, del párrafo, el fragmento de la cadena que no sea una etiqueta y su contenido, lo cual excluye al <input> y todo lo que contenga. Como el método .match() devuelve un array en el que la primera posición contiene al resultado encontrado, tomamos a dicha posición para así obtener solo la palabra "cantidad".

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 29/04/2016, 07:12
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 6 meses
Puntos: 19
Respuesta: obtener el texto anterior

Código Javascript:
Ver original
  1. campo.previousSibling.textContent
no te funciona? que raro

Etiquetas: input, valor
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 15:16.