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 相关文章推荐
JavaScript中的Window窗口对象
Jan 16 Javascript
Javascript isArray 数组类型检测函数
Oct 08 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
Aug 09 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
利用Angular.js限制textarea输入的字数
Oct 20 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
Vue 进入/离开动画效果
Dec 26 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
Aug 29 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
js实现详情页放大镜效果
Oct 28 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
详解WordPress中添加友情链接的方法
2016/05/21 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
深入解析Python中的线程同步方法
2016/06/14 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
学生励志演讲稿
2014/01/06 职场文书
2014年党务公开实施方案
2014/02/27 职场文书
法人委托书
2014/07/31 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android