2010-08-24 42 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()'不适合你,你可能不会选择你认为你应该是的。 – 2010-08-24 00:55:46

+1

$(“body”)!= $(“。body”) - 第一个get标签主体,第二个获取主体类。 – Topera 2010-08-24 00:59:02

回答

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 2010-08-24 01:28:28

+0

我错过了。在课程名称前面,我忘了它:) Topera也发现了这个错误 – satyajit 2010-08-24 02:15:37

0

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

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

应该做的伎俩

0

不知道这是否会导致一个问题,但你有无效的标记。来自W3C的“The global structure of an HTML document

通常,块级元素可能包含内联元素和其他块级元素。通常,内联元素可能只包含数据和其他内联元素。在这种结构性区分中固有的概念是块元素创建“更大”的结构比内联元素。

a元素应该被块元素包含,如p,而不是其他方式。

0

这里是HTML或PHP文件的段落元素是ID给TT

<p id="tt">ALert Message </p>
在jQuery的文件,以获得与TT ID您的段落的文字可以

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

正常工作jquery-3.1.1.js