从HTML获取标题
Get title from HTML
我有一个服务器端函数,它返回HTML页面的内容:
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
Meteor.methods({
sayHello: function() {
var response = Meteor.http.call("GET", "http://google.com");
return response;
}
});
});
我有客户端代码,我正试图从这个HTML页面获得标题:
'click.add_tag':函数(e,t){//会话.set('editing_tag_id',e.target.id);
Meteor.call("sayHello", function(err, response) {
var title = $(response.content).find("title").text();
var title2 = $(response).find("title").text();
var title3 = response.content.match(/<title[^>]*>([^<]+)<'/title>/)[1];
alert(title3);
});
我想得到jQuery版本("title"或"title 2"),但它不起作用。它返回空字符串。
"Title3"版本运行良好,但我不喜欢regexps。:)
有什么方法可以让"jQuery"版本正常工作吗?
根据要求,我将重申我的评论作为回答。。。
我会坚持使用regex,即使你不喜欢它。纯粹为了解析少量文本,构建一个本质上是整个页面的DOM元素会带来巨大的开销。regex更轻,在速度较慢的浏览器或速度较慢的机器上可以充分执行。
将response.content
封装在<div>
中,然后从中进行选择。通过这种方式,您可以从一个适当的结构开始,而不是实际得到的数组。
var $wrap = $("<div></div>").html(response.content);
$wrap.find("title").text();
可能发生的情况示例:http://jsfiddle.net/UFtJV/
不要忘记一件事:永远不要将HTML返回到客户端。您应该返回Json(甚至Xml),您的客户端将使用Template将其转换为Html。你正在做的事情就像很多开发人员在做Bad Ajax一样。
别忘了:"只显示数据,不显示"。
所以应该没有任何问题,因为在响应时,您只需要从Json格式的响应中获取数据,并将其注入到模板中。
相关文章:
- Brightcove获取/显示HTML中的当前视频标题和描述
- 在浏览器Cordova/Phonegap中获取页面标题
- 使用Google Feeds API获取RSS Feed标题
- 获取每种语言的跨度标题,并插入新的跨度中
- 如果 document.title 不存在,如何获取页面标题名称
- 使用jquery或javascript在wordpress中获取页面标题
- 如何获取链接内容(innerHTML)并将其作为标题添加到其他链接
- SVG<g>标记获取其<标题>contentJS/jQuery
- jqGrid-如何获取当前网格的标题
- FlexSlider:在右侧垂直获取标题
- 如何编辑此代码以获取图像而不是标题
- 获取打开的选项卡标题 jquery 简单 UI
- jQuery / Javascript方法获取当前页面的标题,将其与字符串匹配,将类分配给该特定元素
- 获取 iFrame 中页面的标题
- 如何在javascript w Ajax和JSON中使用v3 URL API获取Youtube视频标题
- 想要通过GET方法从URL获取值,然后想在我的标题区域的右上角显示这些值
- 如何有效地获取整页标题
- 如何使用javascript从类中的链接获取标题属性
- 如何在 safari 中获取当前页面的 url 和标题
- 如何在应用栏中获取自动完成/文本字段关闭标题