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屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
让JavaScript和其它资源并发下载的方法
Oct 16 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
Oct 12 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 Javascript
解决一个微信号同时支持多个环境网页授权问题
Aug 07 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 Javascript
vue中touch和click共存的解决方式
Jul 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
js实现简单的验证码
2015/12/25 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Django中的ajax请求
2018/10/19 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
Python Web版语音合成实例详解
2019/07/16 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
Python tkinter和exe打包的方法
2020/02/05 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python 绘制可视化折线图
2020/07/22 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
C#公司笔试题
2014/03/28 面试题
精彩的演讲稿开头
2014/05/08 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android