2010-08-24 19 views
5

Esto podría ser algo muy simple en jquery, pero no puedo resolverlo. Mi documento HTML tiene la siguiente estructuraObtener texto de un párrafo en jquery

<div class="body"> 
<a href="/question?id=70"><p>This is the text I want to extract</p></a> 
</div> 

probé este

$("body").find("a p").text() 

pero esto no parece estar funcionando para mí. Puedo obtener el objeto de párrafo pero no el texto. Lo probé con console.log sin uso.

+0

Si 'text()' no funciona para usted, es posible que no seleccione lo que cree que debería ser. –

+1

$ ("body")! = $ (". Body") - el primer cuerpo de etiqueta get, el segundo obtiene body class. – Topera

Respuesta

8

Lo que has debería estar trabajando (you can test it here), asegurarse de que está ejecutando cuando el DOM está listo, sin embargo, como esto:

$(function() { 
    alert($("body").find("a p").text()); //or just $("a p").text() 
}); 

Si se ejecuta antes, los elementos pueden no estar preparados, y su selector no encontrará ninguna coincidencia.

Si desea seleccionar la clase body asegúrese de utilizar ".body" en lugar de "body" (que seleccione el elemento <body>). Aquí hay una versión usando el .class selector: función

$(function() { 
    alert($(".body a p").text()); 
}); 
+0

Gracias por jsfiddle ... esto es lo que estaba buscando para jugar con JS. – satyajit

+0

Me faltaba el. antes del nombre de la clase, lo olvidé :) Topera también encontró el error – satyajit

0

la .html() recupera un html interior nodos.

$('.body a p').html(); 

debe hacer el truco

0

No estoy seguro si esto causaría un problema, pero hay marcas inválidas. De "The global structure of an HTML document" por W3C

Generalmente, los elementos de nivel de bloque pueden contener elementos en línea y otros elementos de nivel de bloque. En general, los elementos en línea pueden contener solo datos y otros elementos en línea. Inherente a esta distinción estructural está la idea de que los elementos de bloque crean estructuras "más grandes" que los elementos en línea. Se supone

a elementos a ser contenida por los elementos de bloque como p, no al revés.

0

aquí es su elemento de párrafo en HTML o un archivo php que es Identificación de asignación tt

<p id="tt">ALert Message </p>
en en el archivo de jQuery para obtener el texto de su párrafo con id tt puede ser

var tt = $("#tt").text(); 
 
alert(tt);

trabajar bien para jquery-3.1.1.js

Cuestiones relacionadas