2011-06-17 4 views
7

decir que tengo esto:Uso de jQuery para seleccionar el texto no en un elemento

<div class='myDiv'> 
    <p>hello</p> 
    hello 
    <p>Hello</p> 
</div> 

¿Cómo se puede agarrar la hola de texto entre las dos etiquetas P utilizando jQuery?

+0

todo tiene (o puede tener) un elemento principal, se puede mostrar al resto de la dom? – Thys

+0

Si le da más contexto (léase: el código que rodea el fragmento que publicó), sería bastante fácil de hacer. ¿O es este el documento completo? – inkedmn

+0

Ok, lo edité ligeramente para dar más contexto – benhowdle89

Respuesta

13
$('.myDiv') 
    .contents() 
    .filter(function() { 
    return this.nodeType == Node.TEXT_NODE; 
    }).text(); 

How do I select text nodes with jQuery?

http://jsfiddle.net/6us8r/

+0

No todos los navegadores funcionan de la misma manera con los nodos de texto, no estoy seguro si esta solución elude ese problema ... – Phil

+0

@Phil Consulte los comentarios y soluciones en el enlace publicado arriba. – js1568

0

js1568 tiene un mejor enfoque

$ ('div.myDiv'). Filtrar ('p'). Texto(), probablemente trabajar.

Lo llevo de vuelta, el filtro no funcionaría. tal vez algo como:

var jText = $('div.myDiv').clone(); 
jText.find('p').remove(); 
jText.text(); 
+0

Esto no funciona - http://jsfiddle.net/interdream/SGjSv/1/ –

Cuestiones relacionadas