2011-08-03 33 views
36

tengo este código htmlObtener el texto después elemento span utilizando jQuery

<div id="mydiv"> 
    <div> 
     <span>Text inside span</span> 
     Text next to span 
    </div> 
    <div> 
     Contents inside the 2nd div element... 
    </div> 
</div> 

quería obtener el "texto junto a abarcar" . Probé la promoción Código jQuery

var a = $('#mydiv div').first().find('span').parent().text(); 
alert(a); 

La salida del código de jQuery anterior es la siguiente:

Text inside span 
Text next to span 

¿Cuál debe ser la cosa que hay que hacer para obtener sólo sólo el "texto junto a abarcar" ?

+1

Ver http://stackoverflow.com/questions/298750/how-do-i-select-text- nodes-with-jquery –

+0

La publicación es avanzada para que pueda entender. Lo siento. –

+0

Es la misma pregunta que usted hizo. –

Respuesta

42
var a = $('#mydiv div').first().contents().filter(function() { 
    return this.nodeType == 3; 
}).text(); 

Esto consigue el contenido de la div seleccionado, y filtra el conjunto combinado, volviendo sólo elementos con nodeType == 3, que son nodos de texto.

6

Usar este código:

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

Es mejor usar 'nodeType == 3' en lugar de la constante' TEXT_NODE', que no es compatible con IE. –

+0

@James gracias, me desconoce el valor entero de nodeType –

6

lo tengo por esto:

$('#mydiv div').first().contents().eq(1).text(); 
Cuestiones relacionadas