Foros del Web » Programando para Internet » Node.js »

Duda con parentNode y nodos hijos

Estas en el tema de Duda con parentNode y nodos hijos en el foro de Node.js en Foros del Web. Buenas, estoy liadillo con un problema y a ver si me lo podéis solucionar. Bueno, al lio. Tengo esta estructura: Código: <!doctype html> <html> <head> ...
  #1 (permalink)  
Antiguo 04/11/2012, 10:48
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 2
Duda con parentNode y nodos hijos

Buenas, estoy liadillo con un problema y a ver si me lo podéis solucionar.

Bueno, al lio.

Tengo esta estructura:

Código:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
<script src="jquery.js"></script>
<script type="text/javascript">
	function cambiarText(obj){
		alert(obj.parentNode.id);
		obj.parentNode.innerHTML +="<textarea>Hola</textarea>";
	}
</script>
</head>
<body>
	<div id="articulo">
        <a id='editarLink1' href="#" onClick="javascript:cambiarText(this)">Editar </a>
        <p id="prueba1">
            Prueba 
        </p>
    </div>
    <div id="articulo">
        <a id='editarLink1' href="#" onClick="javascript:cambiarText(this)">Editar </a>
        <p id="prueba1">
            Prueba 
        </p>
    </div>
    <div id="articulo">
        <a id='editarLink1' href="#" onClick="javascript:cambiarText(this)">Editar </a>
        <p id="prueba1">
            Prueba 
        </p>
    </div>
    <div id="articulo">
        <a id='editarLink1' href="#" onClick="javascript:cambiarText(this)">Editar </a>
        <p id="prueba1">
            Prueba 
        </p>
    </div> 
</body>
</html>
Bien, lo que trato de conseguir es que al pulsar link coja el texto que hay dentro del parágrafo pero de ese propio DIV. Para ello, estoy tratando de, a través del padre, me de el nodo del hijo y coger el texto de alguna manera y luego usar ese texto creando otro parágrafo en el mismo div.

He probado con Javascript, jQuery y nada. No soy capaz, me podéis echar una mano?

Un saludo.
  #2 (permalink)  
Antiguo 04/11/2012, 14:04
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Duda con parentNode y nodos hijos

Aqui te lo dejo hecho con jquery fijate si es exactamente lo que necesitas

Código HTML:
Ver original
  1. <!doctype html>
  2. <meta charset="utf-8">
  3. <title>Documento sin título</title>
  4. <script src="jquery.js"></script>
  5. <script type="text/javascript">

Código Javascript:
Ver original
  1. function cambiarText(obj){
  2.         $(".dinamico").remove();
  3.         $(obj).parent().prepend("<p class='dinamico'>" + $(obj).next(".prueba").text() + "</p>");
  4.     }

Código HTML:
Ver original
  1. </head>
  2.     <div id="articulo">
  3.         <a href="#" onClick="javascript:cambiarText(this)">Editar </a>
  4.         <p class="prueba">
  5.             Prueba 123
  6.         </p>
  7.     </div>
  8.     <div id="articulo">
  9.         <a href="#" onClick="javascript:cambiarText(this)">Editar </a>
  10.         <p class="prueba">
  11.            Prueba 456
  12.         </p>
  13.     </div>
  14.     <div id="articulo">
  15.         <a href="#" onClick="javascript:cambiarText(this)">Editar </a>
  16.         <p class="prueba">
  17.             Prueba 789
  18.         </p>
  19.     </div>
  20.     <div id="articulo">
  21.         <a href="#" onClick="javascript:cambiarText(this)">Editar </a>
  22.         <p class="prueba">
  23.             Prueba ABC
  24.         </p>
  25.     </div>
  26. </body>
  27. </html>

Salu2
  #3 (permalink)  
Antiguo 04/11/2012, 14:09
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Duda con parentNode y nodos hijos

usa nextSibling o nextElementSibling que vienen a ser el elemento adyacente
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 04/11/2012, 15:01
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 2
Respuesta: Duda con parentNode y nodos hijos

Buenas, amos por pasos.

A ver, el código que me ha pasado @djaevi funciona bien, pero si te soy sincero no lo entiendo del todo bien.

Así que si no te importe te voy a ir preguntado un poco el código.

Código:
$(".dinamico").remove();
Esto si, esto es si la clase existe, la remueve, no tiene más xD.

Pero aqui está el lio:

Código:
$("<p class='dinamico'>" + $(obj).next(".prueba").text() + "</p>")
			.insertAfter($(obj));
Es un selector de jQuery, pero no lo llego a entender.

Conseguí hacerlo de esta manera:

Código:
<script type="text/javascript">
	function cambiarText(obj){
		var padre = obj.parentNode;
		padre.id = "cambiado";
		var p = document.getElementById("cambiado").getElementsByTagName("p");
		var text =p[1].innerHTML;
		var myTextArea = document.createElement("textarea");
		myTextArea.innerHTML="<br />" + text;
		padre.replaceChild(myTextArea, p[1]);
	}
</script>
Está puesto el 1 porque es el <p> numero 2.


IsaBelM: Con lo que propones no soy capaz, lo siento :S

Un saludo y muchas gracias a ambos por las respuestas.
  #5 (permalink)  
Antiguo 04/11/2012, 18:53
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Duda con parentNode y nodos hijos

Yo te puse para agregar un parrafo esto

$(obj).prepend("<p class='dinamico'>" + $(obj).next(".prueba").text() + "</p>");

Lo que hago es con prepend insertar el elemento parrafo antes de si mismo osea que da el div con el parrafo dinamico, el link y el parrafo de prueba. No entiendo bien como deberia quedarte que elementos necesitas agregar un textarea o un parrafo?

Salu2!
  #6 (permalink)  
Antiguo 05/11/2012, 00:39
 
Fecha de Ingreso: abril-2011
Mensajes: 23
Antigüedad: 13 años
Puntos: 2
Respuesta: Duda con parentNode y nodos hijos

Aaaaaah, vale. Es que borre para probar el $(obj).prepend. Por eso no lo entendía.

Vale, vale, perfecto.

Pues eso es todo.

Muchas gracias, un saludo.

Etiquetas: hijos, html, js, nodos
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 13:35.