2

我有这个代码

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

}

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

4

2 回答 2

2

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

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

然后你需要在执行查询之前包装它:

var title = $('<div/>').html(data).find('h1').text();
alert(title);
于 2012-07-30T02:06:52.430 回答
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/

于 2012-07-30T05:04:18.587 回答