返回信息流function getAllElementWithTitle() {
var nodelist = document.getElementsByTagName('*');
var result = [];
var len = nodelist.length;
for (var i=0;i<len;i++) {
if (nodelist[i].getAttribute && nodelist[i].getAttribute("title")) {
result.push(node);
}
}
return result;
}
这是一条镜像帖。来源:北邮人论坛 / www-technology / #21719同步于 2013/10/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖
Re: 求解一道百度笔试题
mask4byr
2013/10/13镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
用XPath中的document.evaluate()参考http://www.w3school.com.cn/xmldom/met_document_evaluate.asp
参考http://www.w3school.com.cn/xpath/xpath_syntax.asp其中选择节点用@表达式,什么getElementsByTagName("*")忽略吧,XPath是xml文档html文档都适用的方法
找个页面用FireBug调试下var nodelist = document.evaluate("*[@id]", document.body, null, 7, null),获取全部带有id属性的标签,IE解决方案是使用document.selectNodes("*[@id]"),方法支持功能没有document.evaluate多,但是已经可以解决这个问题了
【 在 mask4byr 的大作中提到: 】
: function getAllElementWithTitle() {
: var nodelist = document.getElementsByTagName('*');
: var result = [];
: ...................
页面元素都拿来做nodelist,不觉得性能方面低了点么?实际这么用的人很少的,搞过脚本优化的人一看正则,还是*一般都会眉头一紧,一个门户网站的主页,这么弄是个小灾难...
看来你是搞过脚本优化的大牛,求指教~
【 在 logsin 的大作中提到: 】
: 页面元素都拿来做nodelist,不觉得性能方面低了点么?实际这么用的人很少的,搞过脚本优化的人一看正则,还是*一般都会眉头一紧,一个门户网站的主页,这么弄是个小灾难...