从jquery中获取段落文本

8
这可能是 jQuery 中很简单的事情,但我无法解决它。我的 HTML 文档具有以下结构:
 <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进行测试,但无法成功。


如果 text() 对你不起作用,那么你可能没有选择你认为应该选择的内容。 - Jesse Dhillon
1
$("body") != $(".body") - 第一个获取标签为 body,第二个获取 body 类。 - Topera
4个回答

13

你所拥有的代码应该是可以工作的 (这里可以测试),但要确保在DOM准备好后运行它, 像这样:

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

如果代码运行得太早,那么元素可能还没有准备好,你的选择器就无法找到匹配项。

如果你想选择class body,请确保使用".body"而不是"body"(后者会选择<body>元素)。这里有一个使用.class选择器的版本:

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

谢谢 jsfiddle.. 这正是我在寻找的,用来玩弄 JS 的东西。 - satyajit
我忘记在类名前加“.”,这是个小错误:) Topera也发现了这个bug。 - satyajit

0

.html() 函数检索节点的内部 HTML。

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

应该可以解决问题


0

here is your paragraph element in html or php file which is id assign tt

<p id="tt">ALert Message </p>

in in jquery file to get the text of your paragraph with tt id can be

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

对于jquery-3.1.1.js运行良好


0

不确定这是否会引起问题,但您的标记无效。来自W3C的“{{link1:HTML文档的全局结构}}”

通常,块级元素可以包含内联元素和其他块级元素。通常,内联元素只能包含数据和其他内联元素。在这种结构上的区别中固有的想法是块元素创建比内联元素更大的结构。

a元素应该由像p这样的块元素包含,而不是相反。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接