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中void(0)的具体含义解释
Feb 27 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
Nov 30 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
Feb 23 Javascript
Jquery倒计时源码分享
May 16 Javascript
JQuery实现鼠标移动图片显示描述层的方法
Jun 25 Javascript
全面解析bootstrap格子布局
May 22 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
获取url中用&amp;隔开的参数实例(分享)
May 28 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
Sep 09 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内存使用情况如何获取
2015/10/10 PHP
php 三元运算符实例详细介绍
2016/12/15 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
javaScript对象和属性的创建方法
2007/01/15 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
Django实现快速分页的方法实例
2017/10/22 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
python实现多层感知器
2019/01/18 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
Django组件content-type使用方法详解
2019/07/19 Python
pandas如何处理缺失值
2019/07/31 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
Python版中国省市经纬度
2020/02/11 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
基于python实现复制文件并重命名
2020/09/16 Python
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
安全生产网格化管理实施方案
2014/03/01 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
图文详解matlab原始处理图像几何变换
2021/07/09 Python
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技