- 浏览: 313475 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (243)
- Core Java (13)
- Java (12)
- Android (2)
- Lucene (3)
- J2EE (3)
- Hibernate (2)
- Jsp & Servlet (3)
- Struts2 (3)
- Spring (5)
- JSF (6)
- RichFaces (2)
- HTML & JS & DOM & CSS (87)
- browser (1)
- Ajax & A4J (2)
- Workflow (1)
- Maven (3)
- Linux (2)
- VM & VBOX (1)
- Tomcat (1)
- Cache (3)
- Others (36)
- design (1)
- PHP (1)
- Try.js (1)
- HTML5 && CSS3 && ECMAScript5 (26)
- 疯言疯语 (5)
- mongodb (2)
- Hardware Common Sence (1)
- RESTful (3)
- Nginx (2)
- web安全 (8)
- Page Design (1)
- web performance (1)
- nodejs (4)
- python (1)
最新评论
-
New_Mao_Er:
求最新的版本破解啊!!!
Omondo eclipseUML插件破解 -
konglx:
讲得仔细,谢了
全面分析 Spring 的编程式事务管理及声明式事务管理 -
cilendeng:
对所有post有效只能使用过滤器
说说Tomcat的Server.xml的URIEncoding=‘UTF-8’配置 -
jiulingchen:
mark了,灰常感谢!
JAVA中最方便的Unicode转换方法 -
anlaetion:
这算法可以有
js 字符串搜索算法
querySelector和querySelectorAll是W3C提供的新的查询接口
module dom { [Supplemental, NoInterfaceObject] interface NodeSelector { Element querySelector(in DOMString selectors); NodeList querySelectorAll(in DOMString selectors); }; Document implements NodeSelector; DocumentFragment implements NodeSelector; Element implements NodeSelector; };
从接口定义可以看到Document、DocumentFragment、Element都实现了NodeSelector接口。即这三种类型的元素都拥有者两个方法。querySelector和querySelectorAll的参数须是符合 css selector 的字符串。不同的是querySelector返回的是一个对象,querySelectorAll返回的一个集合(NodeList)。
目前 IE8/9及Firefox/Chrome/Safari/Opera 的最新版已经支持它们。
如想获取页面class属性为"red"的元素,除了使用document.getElementsByClassName('red')还可以使用document.querySelector('.red')和document.querySelectorAll('.red')。
但Element.querySelector和Element.querySelectorAll的实现有错误,如下:
<div id="d1"> <p> <a href="http://www.sina.com.cn"> SINA </a> </p> </div> <script type="text/javascript"> function $(id) { return document.getElementById(id); } var d1 = $('d1'); var obj1 = d1.querySelector('div a'); var obj2 = d1.querySelectorAll('div a'); alert(obj1); // -> http://www.sina.com.cn/ alert(obj2.length); // -> 1 </script>
在支持这两个方法的浏览器可以看到分别弹出了“http://www.sina.com.cn/”,和 “1”。说明查询到了想要的元素或元素集合。这与W3C的定义却是不合的,根据定义应该是在元素d1范围内查找"div a",而d1内压根没有div。因此应该分别返回null,空集合。
jQuery1.4.2 及之前版本中只使用了document.querySelectorAll,没有使用Element.querySelectorAll。 jQuery1.4.3 后使用了Element.querySelectorAll,但做了修复。在选择器前加了"#__sizzle__"以强制其在指定元素内查找(3903-3918行)。简化下:
function $(id) { return document.getElementById(id); } var d1 = $('d1'); var obj1 = d1.querySelector('div a'); var obj2 = d1.querySelectorAll('div a'); var old = d1.id, id = d1.id = "__sizzle__"; try { var query = '#' + id + ' div a'; alert(d1.querySelector(query)); alert(d1.querySelectorAll(query).length); } catch(e) { } finally { old ? d1.id = old: d1.removeAttribute("id"); }
实现很巧妙,指定范围的元素如果有id,将其保留在old,"__sizzle__"赋值其作为临时id,在选择器"div a"前指定查找范围为"#__sizzle__",即d1。finally语句来最后清理,如果指定范围的元素本身有id将其恢复为old,没有则去掉临 时的id属性"__sizzle__"。
[转自 :http://www.jzxue.com/wangzhankaifa/javascript-ajax/201103/30-6951.html ]
发表评论
-
循环数组的逻辑怎么写
2015-03-23 10:24 650应用场景这样的: var imgUrls = [ ... -
发布`代码生成器`
2014-11-17 00:45 589闲话不说,直接上地址 npm: https://www. ... -
MutationObserver
2014-10-27 15:29 1102MutationObserver MutationObse ... -
a simple mvvm library - bird
2014-10-09 18:26 733see here:https://github.com/i ... -
遍历dom tree是一件相当耗时的事情
2014-09-23 01:15 783遍历dom tree是一件相当耗时的事情,尤其是在遍历的同时 ... -
今天再讲下js里的继承
2014-09-18 00:27 700js的继承说简单也很简单,请看: function ... -
Text 类型
2014-09-05 18:52 850文本节点由Text类型表 ... -
JavaScript插入动态脚本
2014-09-05 18:47 648动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该 ... -
innerHTML插入<style>元素
2014-09-05 18:37 1167通过innerHTML写入<style>元素没 ... -
CSS实现相对浏览器窗口定位彻底研究
2014-09-05 18:33 3733Web Developer / Designer 经常需要将 ... -
JavaScript插入动态样式
2014-09-05 18:07 613能够把CSS样式包含到HTML页面中的元素有两个。其中,& ... -
再理解jQuery;delete原型属性
2014-05-13 22:05 1869以前用jQuery的时候曾粗略看了它的源码,但却不求甚解。 ... -
javascript &&和||
2012-07-23 00:38 705一直以为 && 和 || ... -
undefined 和 void 0 的区别
2012-07-20 11:15 705在读backbone源码时看见这么一段代码: if ( ... -
Fiddler - 前端开发值得拥有
2012-07-16 14:41 839最近换了新工作,搬了新家,换了新室友,一切都在重新开始。 ... -
说说我的web前端之路,分享些前端的好书
2012-07-16 14:38 796WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没 ... -
JavaScript实现 页面滚动图片加载
2012-07-16 14:29 694又到了这个月的博客时间了,原计划是打算在这个月做一个的功 ... -
JavaScript 操作 Cookie
2012-07-16 11:18 693从事web开发也有些日 ... -
Javascript定义类(class)的三种方法
2012-07-12 12:35 590程序员们做了很多探索,研究如何用Javascript模拟”类” ... -
服务端解决跨源共享
2012-06-21 10:18 4521跨源资源共享是web开发领域中一个非常有趣的话题,互联网 ...
相关推荐
querySelectorAll()方法是W3C标准的一部分,用于返回文档中匹配指定CSS选择器的所有元素。在IE8中,这个方法被引入作为对现代浏览器特性的追赶,但在实际使用中可能需要注意一些兼容性问题。 首先,问题在于当属性...
这往往是由于浏览器内核对CSS规则的解析和实现差异造成的。常见的内核有Trident(IE)、Gecko(Firefox)、Blink(Chrome、Opera)和WebKit(Safari)等,它们对CSS的支持程度和解析方式各有特点。 脚本相关问题...
总的来说,"winfrom_cefSharp实现淘宝模拟点击实例"是一个综合了C#、Winforms和CefSharp技术的实战项目,它展示了如何在桌面应用中实现对网页的自动化控制,对于学习Web自动化和了解浏览器内核的交互有极大的帮助。...
这包括选择元素(querySelector、querySelectorAll)、创建和修改元素、添加和删除元素等。 2. 动画效果:JavaScript可以用于创建各种动画,例如平滑滚动、淡入淡出、滑动门、轮播图等。这通常涉及到定时器...
JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的脚本语言,主要应用于浏览器端,用于实现动态交互和丰富的用户体验。"JavaScript 300例"这个资源集合提供了一个全面的学习平台,帮助开发者深入理解和实践...
学会选择元素(如getElementById、querySelector、querySelectorAll等)、修改元素属性、插入和删除节点,是进行网页动态更新的基础。 异步编程是JavaScript的另一大特色,主要涉及回调函数、Promise和async/await...
在HTML页面中,JavaScript(JS)常常被用来增强用户体验,其中一种常见的应用场景就是实现“一键复制”功能。...记得在实际使用中,根据浏览器版本和用户需求,适当地进行错误处理和用户体验优化。
6. **DOM操作**:JavaScript可以直接操作文档对象模型(DOM),通过选择元素(querySelector, querySelectorAll等)、添加和移除元素、修改属性和样式来改变网页内容。 7. **AJAX与Fetch API**:用于向服务器发送...
在JavaScript中,错误处理是不可或缺的一部分,手册可能会列出常见的Error类型,如TypeError、ReferenceError、SyntaxError等,并给出如何捕获和处理这些错误的方法。 总的来说,这个“JavaScript速查手册”是...
使用querySelector和querySelectorAll选择元素,innerHTML和textContent属性处理元素内容,addEventListener和removeEventListener管理事件。 9. **错误处理**:try...catch语句用于捕获并处理运行时错误。throw...
6. **AJAX和Fetch API**:介绍异步编程,包括XMLHttpRequest对象的使用和现代浏览器支持的Fetch API,用于在后台与服务器交换数据并更新部分网页内容。 7. **闭包和作用域**:解析JavaScript中的作用域规则,特别是...
学习如何选择元素(如通过getElementById、querySelector或querySelectorAll)、修改元素属性、添加或删除元素,以及如何监听和处理事件,是提升Web交互性的关键。 ES6(ECMAScript 2015)及后续版本引入了许多新...
7. **错误处理与调试**:学习如何捕获和处理运行时错误,以及利用浏览器开发者工具进行有效的代码调试。 8. **图片素材与代码源码**:项目中包含的图片素材和源码文件,为读者提供了实际操作的机会,可以通过阅读和...
此外,CSS选择器在JavaScript中的应用,如querySelector和querySelectorAll,也是实现页面交互的重要工具。 数组的方法,如map、filter、reduce、forEach等,能帮助你对数据进行处理和转换。而Array.prototype对象...
在DOM(文档对象模型)部分,手册会讲解如何使用JavaScript操作HTML元素,如选择元素(getElementById、querySelector、querySelectorAll等)、添加和删除元素、改变元素内容和样式等。事件处理也是DOM编程的关键,...
11. **DOM遍历与选择**:包括getElementById、getElementsByClassName、getElementsByTagName、querySelector和querySelectorAll等方法,用于查找DOM树中的特定元素。 12. **定时器**:setTimeout和setInterval用于...
3. **自动填充表单** - 当检测到特定页面时,插件会查找登录表单,使用`document.querySelector()`或`document.querySelectorAll()`选择相应的输入字段,然后用`value`属性设置用户名和密码。 4. **模拟点击** - ...
以上只是JavaScript技术体系中的一部分,通过深入理解和实践这些技巧,可以极大地提升JavaScript编程能力。在"Javascript技术技巧大全"这个压缩包中,你可能会找到关于这些话题的实例代码和详细解释,帮助你在实际...
5. **AJAX**:异步JavaScript和XML,用于实现页面的无刷新更新,涉及XMLHttpRequest对象的使用、请求和响应处理、跨域问题以及现代浏览器中的fetch API。 6. **ES6及以后的新特性**:如解构赋值、模板字符串、let和...
- 元素选择:掌握getElementById、getElementsByClassName、getElementsByTagName、querySelector和querySelectorAll等方法。 - 属性操作:改变元素的属性值,如innerHTML、innerText、style等。 - 事件绑定:...