我有这段代码
success: function(data) {
title = $(data).find('h1').text();
alert(data);
alert(title);
}
现在数据显示所有带有h1标签的html,但标题显示为空
答案 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();