2010-08-24 3 views
5

Это может быть очень простой задачей в jquery, но я не могу понять это. Мой HTML документ имеет следующую структуруПолучение текста из абзаца в jquery

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

Я попробовал этот

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

, но это, кажется, не работает для меня. Я могу получить объект абзаца, но не текст. Я тестировал его с помощью console.log без использования.

+0

Если 'text()' не работает для вас, вы, возможно, не выбираете то, что, по вашему мнению, должно быть. –

+1

$ ("body")! = $ (". Body") - первое тело тега получения, второе - тело. – Topera

ответ

8

То, что вы должны работать (you can test it here), убедитесь, что вы используете его, когда DOM готова, хотя, как это:

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

Если он работает ранее, элементы могут быть не готовы, и ваш селектор не найдет совпадений.

Если вы хотите, чтобы выбрать классbody обязательно используйте ".body" вместо "body" (который будет выбрать <body> элемент). Вот версия с использованием .class selector: функция

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

Спасибо за jsfiddle .. это то, что я искал, чтобы играть с JS. – satyajit

+0

Мне не хватало. перед классом, я забыл об этом :) Топера также нашел ошибку – satyajit

0

.html() возвращает узлы внутренний HTML.

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

должен сделать трюк

0

Не уверен, если это будет вызывать проблемы, но у вас есть недопустимая разметка. От «The global structure of an HTML document» от W3C

Как правило, элементы уровня блока могут содержать встроенные элементы и другие элементы уровня блока. Как правило, встроенные элементы могут содержать только данные и другие встроенные элементы. В основе этого структурного различия лежит идея о том, что блочные элементы создают «более крупные» структуры, чем встроенные элементы.

a элементы должны содержаться блочными элементами, как p, а не наоборот.

0

вот ваш пункт элемент в HTML или файл PHP, который является идентификатор правопреемник ттом

<p id="tt">ALert Message </p>
в в Jquery файл, чтобы получить текст вашего пункта с Tt ID может быть

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

работает отлично для Jquery-3.1.1.js

Смежные вопросы