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 相关文章推荐
jQuery div层的放大与缩小简单实现代码
Mar 28 Javascript
DIV始终居中的js代码
Feb 17 Javascript
jquery显示隐藏input对象
Jul 21 Javascript
jQuery拖拽插件gridster使用指南
Apr 21 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
Apr 25 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 Javascript
vue生成随机验证码的示例代码
Sep 29 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 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 Yii框架之表单验证规则大全
2015/11/16 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
chrome调试javascript详解
2015/10/21 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
js重写方法的简单实现
2016/07/10 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
python 字典访问的三种方法小结
2019/12/05 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
幼儿园教师教学反思
2014/02/06 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
小学生倡议书范文
2014/05/13 职场文书
企业挂职心得体会
2014/09/10 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
AngularJS实现多级下拉框
2022/03/25 Javascript