javascript针对DOM的应用实例(一)


Posted in Javascript onApril 15, 2012

我相信可能大部分人来这里学javascript主要还是想用这个结合页面中的DOM元素做一些实际有用的交互效果。所以我这里只教大家最实际,最有用的javascript应用。但是前提大家最好有一些javascript或者jquery的编程的基础。好废话不多说了。
今天第一篇,就教大家如何用javascript获取页面中的dom元素。这个很重要。我会对照JQuery来讲。
如果页面中的元素是ID属性
<div id="dom"></div>

JQ的方法:$("#dom"),
原生js的方法:var a = document.getElementById("dom");这个a就等价于$("#dom");

如果我想获取父级元素下的一个元素

<div id="dom"> 
<span></span> 
</div>

JQ的方法:$("#dom span"),
原生js的方法:var b = document.getElementById("dom").getElementsByTagName("span")[0];这个b就等价于$("#dom span")
其实还有一种简单方法var b = document.getElementById("dom").childNodes[0] 但是在FF下会出问题,这个我们以后讨论

获取页面中的一组元素

<div id = "dom"> 
<ul> 
<li></li> 
<li></li> 
<li></li> 
<ul> 
</div>

JQ的方法:$("#dom ul li")或者$("#dom li")或者$("#dom > li"),
原生JS方法:var c = document.getElementById("dom").getElementsByTagName("li");但是这个c不等同于上面,因为不能像上面JQ那样直接使用。需要用for循环才能一起使用。如果单个使用比如说我只用第一个li,只需要var c = document.getElementById("dom").getElementsByTagName("li")[0],用第二个就是var c = document.getElementById("dom").getElementsByTagName("li")[1],以此类推。因为DOM元素在JS中是以数组形式存放的。

上面的都还算好理解。现在我要讲的这个是大家都常用的。但是在原生JS里获取也是最麻烦的一个属性就是class属性,
<div class = "dom'>
</div>

JQ的方法:很简单$(".dom");
原生JS方法:这就有些麻烦了,需要写一个函数。因为原生JS没有提供直接获取class的方法。所以我们需要这样。我先把函数写出来

function $class(domclass){ 
var odiv = document.body.getElementByTagName("*"); 
var a; 
for(var i = 0;i<odiv.length;i++){ 
if(odiv.className ==domclass){ 
a = odiv 
} 
return a; 
} 
}

用这个函数来获取就很简单了只需要var d = $class("dom");

我就说说这个函数的意思吧,
var odiv = document.body.getElementByTagName("*");
这句意思是获取页面中所有的DOM元素

for(var i = 0;i<odiv.length;i++){ 
if(odiv.className ==domclass){ 
a = odiv 
}

这个是遍历页面中所有元素然后拿他们的class进行比对。如果和我们传进来的domclass这个参数一样就把这个元素拿给a;
return a;把a返回出来

所以用var d = $class("dom");就相当于var d = a;

(顺便说下className是这JS的一个属性就是得到DOM元素的命名的class)

好了今天就发这么多。我想我写的比较笼统。大家肯定有很多不明白的地方,有不明白的就直接问。我会一一解释的。大家想学什么交互效果也可以告诉我,我会尽量满足大家

Javascript 相关文章推荐
一个背景云变换js特效 鼠标移动背景云变化
Dec 28 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
简单易用的倒计时js代码
Aug 04 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
jquery判断复选框是否选中进行答题提示特效
Dec 10 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
小程序开发之模态框组件封装
Apr 23 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 Javascript
js实现鼠标切换图片(无定时器)
Jan 27 Javascript
JavaScript中的null和undefined解析
Apr 14 #Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 #Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 #Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 #Javascript
深入理解JavaScript系列(15) 函数(Functions)
Apr 12 #Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 #Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
Apr 12 #Javascript
You might like
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
Python多线程编程简单介绍
2015/04/13 Python
详解Python装饰器由浅入深
2016/12/09 Python
python如何统计序列中元素
2020/07/31 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
中学生自我评价范文
2014/02/08 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
优秀党员事迹材料
2014/12/18 职场文书
雷锋电影观后感
2015/06/10 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
不会写演讲稿,快来看看这篇文章!
2019/08/06 职场文书
Python数据处理的三个实用技巧分享
2022/04/01 Python