JavaScript DOM(一)--页面加载完成事件与获取元素节点
2017-06-12 20:53
267 查看
window.onload与$(document).ready()比较
比较项\js or jQuery | window.onload | $(document).ready() |
---|---|---|
执行时机 | 需要等到网页中所有内容加载完成后执行(包括图片) | 网页中DOM结构绘制完成后执行 |
编写个数 | 不能同时编写多个 | 可以同时编写执行多个 |
简化写法 | 无 | (document).ready(function())简写为(document).ready(function())简写为(function(){}) |
如果在body上监听了onload事件,window.onload事件将不再触发。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery ready与js onload</title> <script type="text/javascript" src="../js/jquery-3.2.1.js"></script> <script type="text/javascript"> console.log('begin.time:', Date.now()); window.onload = function () { console.log('js onload', Date.now()); }; $(function () { console.log('jQuery ready', Date.now()); }); </script> </head> <body onload="console.log('body.onload')"> <img src="http://www.baidu.com/img/baidu_jgylogo3.gif"/> </body> </html>
获取元素节点
js DOM获取节点一共有四个方法,分别是:document.getElementsByTagName('div'); document.getElementById('wrapper'); document.getElementsByClassName('outer'); document.getElementsByName('myDiv');
其对应的jQuery写法如下所示:
$('div'); $('#wrapper'); $('.outer'); $('[name=myDiv]')
完整代码如下所示
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="../js/jquery-3.2.1.js"></script> <script type="text/javascript"> $(function () { // 标签选择器 console.log($('div')); console.log(document.getElementsByTagName('div')); // ID选择器 console.log($('#wrapper')); console.log(document.getElementById('wrapper')); // 类选择器 console.log($('.outer')); console.log(document.getElementsByClassName('outer')); // 获取name console.log($('[name=myDiv]')); console.log(document.getElementsByName('myDiv')); // 选择器可以混合使用 console.log(document.getElementById('wrapper').getElementsByTagName('div')); console.log(document.getElementById('wrapper').getElementsByClassName('outer')); }); </script> </head> <body> <div id="wrapper" class="outer"> <div name="myDiv" class="outer"> <div>这是被div包裹的文本</div> <p name="myDiv">这是被p标签包裹的文本</p> </div> </div> </body> </html>
注:
1.document.getElementsByName主要用在表单中,和input等结合使用。
2.document.getElementsByName有一定的兼容性问题,主要集中在ie以及Firefox中,使用中请注意兼容性问题。
3.getElementsByTagName允许把一个通配符作为他的参数,比如 *
4.getElementById可以和getElementsByTagName以及getElementsByClassName通用,但是getElementById在前,getElementsByTagName和getElementsByClassName在后。(见示例程序)
5. getElementsByClassName可以查找带有多个类名的元素,只需要在字符串参数中用空格隔开即可,和实际DOM中的类名顺序可以不一致。
如果您有任何疑问或本文侵犯了您的著作权,请联系我。 mail to kylin
相关文章推荐
- 页面加载让div元素获取焦点,通过键盘操作焦点切换,安卓电视遥控事件
- WebDriver拾级而上·之九 等待页面加载元素完成
- 使用jquery获取iframe加载完成事件
- jQuery 中的 Ajax 全局事件 当用户点击页面上某一按钮请求数据时,在页面上显示 loading... ,页面加载完成后隐藏
- jQuery页面加载时触发ready()事件 dom结构加载完成就触发。(参考慕课网)
- onload 事件会在页面或图像加载完成后立即发生.
- selenium webdriver学习(十一)-怎么等待页面元素加载完成
- 页面所有元素加载完成之后执行某个js函数
- selenium webdriver(Appium)如何等待页面元素加载完成
- 对于页面动态加载的元素事件无效的解决方案
- 怎么等待页面元素加载完成
- 在 UIWebView 中如何准确获得页面加载完成的事件
- 给ajax加载的页面元素添加鼠标事件
- selenium webdriver(Appium)如何等待页面元素加载完成
- js 页面加载完成后判断表单元素是否存在
- 在 UIWebView 中如何准确获得页面加载完成的事件
- 获取WebView加载HTML时网页中的内容 获取页面元素
- Selenium WebDriver等待页面元素加载完成
- selenium webdriver学习-怎么等待页面元素加载完成