Jquery没有抓取' h1'来自文字

时间:2012-07-30 02:05:48

标签: javascript jquery ajax

我有这段代码

success: function(data) {
 title = $(data).find('h1').text();
alert(data);
alert(title);

}

现在数据显示所有带有h1标签的html,但标题显示为空

2 个答案:

答案 0 :(得分:2)

如果您的数据包含以下内容:

<h1>heading</h1>
<p>content</p>

然后你需要在执行查询之前将其包装起来:

var title = $('<div/>').html(data).find('h1').text();
alert(title);

答案 1 :(得分:2)

.find()方法查找后代元素,因此如果您的h1元素处于“顶层”级别,则无法找到它。请尝试.filter()

title = $(data).filter('h1').text();
  

“基本上我想抓住h1并输入变量,然后将剩余的html放在数据变量中”

给定一个data参数,这个字符串是这样的:

"<h1>My heading</h1><p>This is a test</p><p>This <span>is another</span> test.</p>"

你可以这样做:

var $data = $(data),
    $title = $data.filter("h1"),
    title = $title.text();

$data = $data.not($title);

上面的结果是两个jQuery对象:$title,其中包含h1元素,$data,其中包含其余的。从那里,您可以使用$title.text()来获取h1的实际文本。

简单演示:http://jsfiddle.net/yyKCW/

如果您想将“剩余的html”作为字符串,那么您可以在设置$data之后执行以下操作:

var restAsString = $("<div></div>").append($data).html();

演示:http://jsfiddle.net/yyKCW/1/