欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【javascript针对DOM的应用分析(四)】,下面是详细的讲解!
javascript针对DOM的应用分析(四)
下面我就写几个给大家看看
一,点击传参方法
<script>
function tab(dom){
var list=document.getElementById("list").getElementsByTagName("li");
var con=document.getElementById("con").getElementsByTagName("div");
for(var i=0;i<list.length;i++){
if(list==dom){
list.className="on";
con.style.display="block";
}
else{
list.className="";
con.style.display="none";
}
}
}
</script>
<div id="list">
<ul>
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<div id="con">
<div style="display:block;">111111</div>
<div style="display:none;">222222</div>
<div style="display:none;">333333</div>
<div style="display:none;">444444</div>
</div>
我解释一下
var list=document.getElementById("list").getElementsByTagName("li");
var con=document.getElementById("con").getElementsByTagName("div");
获取dom元素,这个不用说了吧。写什么效果第一件事都是获取元素
for(var i=0;i<list.length;i++){
if(list==dom){
list.className="on";
con.style.display="block";
}
else{
list.className="";
con.style.display="none";
}
遍历一下所有的li元素,找到和传进来的dom一样的东西,然后把他的class设置为on,并且把相对应的div给显示出来,其他的就全部把className设置为空,并且把对应的div给隐藏。
大概就是这样。但是大家肯定就都发现了这样的写法的缺点,就是每个li都要设置一个onclick时间传入它自己。这样有点违反了结构与表现相分离的道理。所以我们就换种写法
二,直接写入鼠标事件方法
<script>
function tab(){
var list=document.getElementById("list").getElementsByTagName("li");
var con=document.getElementById("con").getElementsByTagName("div");
for(var i=0;i<list.length;i++)
{
list.onclick=function(){
for(var i=0;i<list.length;i++){
if(list==this){
list.className="on";
con.style.display="block";
}
else{
list.className="";
con.style.display="none";
}
}
}
}
}
window.onload=function(){tab();}
</script>
<div id="list">
<ul>
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
<div id="con">
<div style="display:block;">111111</div>
<div style="display:none;">222222</div>
<div style="display:none;">333333</div>
<div style="display:none;">444444</div>
</div>
只是简单的改动一下就可以了,因为在JS中有这些方法可以用比如onclick,onmouseover等等,但是用的时候我要先把所有的要用这个事件的元素都遍历一下,如果那个被点击就会传入一个this,我们只需要像第一种方法一样判断一下list是不是和这个this相同,然后下面的操作和第一种方法一样
(这样两种方法都是比较简单的写法,在JS里还有一些比较高级复杂的写法,但是用到的思想和这两种写法大多一样。)
好了就到这里,建议大家可以用这种方法写一个图片切换效果,我想应该很简单吧
下章继续说效果
关于javascript针对DOM的应用分析(四)的用户互动如下:
相关问题:javascript解析
答:你好,javascript中解析html有三种方式,分别是 1.通过类名获取html元素集合,返回的是html元素集合,document.getElementsByClassName(); 2.通过name属性值获取元素集合,返回的dom对象的集合,document.getElementsByName(); 3.通过id属性获取... >>详细
相关问题:对JavaScript的认识和经验
答:1:学习无重点,js应该从实践中去学,例如常用到表单验证,这里就涉及到事件,正则等内容,还有就是常用的动画特效,当做网页需要实现某些功能时,再考虑js的实现,网上资料很多,很容易就能看懂的,想要一次性全部学懂了再去做网站,就没必要了... >>详细
相关问题:1.使用JavaScript客户端脚本的好处有哪些? 2.简...
答:1.脚本语言常用的无外乎:jscript和vbscript 两者相比各有各的特点,一般来说JavaScript能够运行在不同平台上,比如能够同时在Windows系统的IE、Linux的NS、Mazilla等浏览器上运行,而VBScript则只能在Windows系统的IE上运行,因此JavaScript适... >>详细
- 【Array】js中更短的 Array 类型转换-类型转换
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【addClass】javascript自定义的addClass()方法
- 【Ajax】jQuery 学习第六课 实现一个Ajax的TreeVi
- 【extjs】extjs每个组件要设置唯一的ID否则会出错
- 【focus】JavaScript使用focus()设置焦点失败的解
- 【bootstrap3】基于bootstrap3和jquery的分页插件
- 【fn】开发插件的两个方法jquery.fn.extend与jque
- 【datagrid】jQuery easyui datagrid动态查询数据
- 【ajax】js获取通过ajax返回的map型的JSONArray的
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
