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中实现暂停的几篇文章
Mar 04 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
Sep 29 Javascript
Javascript中For In语句用法实例
May 14 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
Jan 06 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
Apr 11 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
脚本div实现拖放功能(两种)
Feb 13 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
Mar 04 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
javascript中undefined的本质解析
Jul 31 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验证码函数的使用示例
2013/05/03 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
2013/03/06 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
JavaScript动态添加style节点的方法
2015/06/09 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
python中实现php的var_dump函数功能
2015/01/21 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
编程实现去掉XML的重复结点
2014/05/28 面试题
建筑设计师岗位职责
2013/11/18 职场文书
开学典礼决心书
2014/03/11 职场文书
党建工作先进材料
2014/05/02 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
2015年预算员工作总结
2015/05/14 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
使用python绘制横竖条形图
2022/04/21 Python