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.validate使用攻略 第一部
Jul 01 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
JavaScript中toString()方法的使用详解
Jun 05 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 Javascript
Jquery跨域获得Json的简单实例
May 18 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
Sep 08 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 Javascript
使用vuex的state状态对象的5种方式
Apr 19 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Python中subprocess模块用法实例详解
2015/05/20 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
利用aardio给python编写图形界面
2017/08/21 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
django-allauth入门学习和使用详解
2019/07/03 Python
简单了解python代码优化小技巧
2019/07/08 Python
应届大专毕业生个人自荐信
2013/09/22 职场文书
英语自荐信常用语句
2013/12/13 职场文书
如何写求职信
2014/05/24 职场文书
法学求职信
2014/06/22 职场文书
教师创先争优承诺书
2015/04/27 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
Python实现自动玩连连看的脚本分享
2022/04/04 Python