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里还有一些比较高级复杂的写法,但是用到的思想和这两种写法大多一样。)
好了就到这里,建议大家可以用这种方法写一个图片切换效果,我想应该很简单吧

下章继续说效果

(0)

相关推荐

  • 什么是DOM(Document Object Model)文档对象模型

    D:document 文档 浏览器加载的页面 DOM O:object 对象 页面及页面中的任何元素都是对象 M:module 模型 页面中的元素的组织形式 DOM被W3C组织设计为一种平台无关.语言无关的API,程序或脚本通过其动态访问.修改文档的内容.样式.结构. DOM是web 浏览器的运行规范,javascript借助DOM成就了其web标准语言的地位,在web领域实现了所谓"一次编写到处运行"的目标. 文档对象模型(Document Object Model,DOM)是一种用

  • javascript针对DOM的应用分析(二)

    其实在原生的也JS也有这些属性.和JQ几乎相同但是比JQ少一些.但是用起来却比JQ麻烦一点.主要因为FF浏览器,因为FF会把你的换行也当做一个DOM元素.比如说 复制代码 代码如下: <div id = "dom"> <div></div> <div></div> </div> 我用原生的JS获取ID为dom的元素下的子元素.用我第一章说的方法就是var a = document.getElementById(&q

  • javascript针对DOM的应用分析(三)

    如果这个DOM元素没有样式也就谈不上操作了.2.我们也可以直接用JS动态的向html里写入DOM元素. 今天这章我们就讲这两个应用 (一)对html里现有的DOM元素进行操作. 我上面说了,对现有的DOM元素进行操作,无非就是对样式的操作.所以我们首先就要能获取这个DOM元素的样式.在讲获取DOM元素的样式之前.先要说下DOM元素的样式链接方式.有三种. 一是直接在html文档里写入样式例如 <div style="width:300px;height:200px;background:#

  • jquery 操作DOM的基本用法分享

    例子展示: jquery代码: 复制代码 代码如下: <script language="javascript"> $(document).ready(function(){ alert($("ul li:eq(1)").text()); //选取第二个li的值 alert($("p").attr("title")); //选取p的title属性的值 //追加元素 $('ul').append("<

  • javascript针对DOM的应用实例(一)

    我相信可能大部分人来这里学javascript主要还是想用这个结合页面中的DOM元素做一些实际有用的交互效果.所以我这里只教大家最实际,最有用的javascript应用.但是前提大家最好有一些javascript或者jquery的编程的基础.好废话不多说了. 今天第一篇,就教大家如何用javascript获取页面中的dom元素.这个很重要.我会对照JQuery来讲. 如果页面中的元素是ID属性 <div id="dom"></div> JQ的方法:$("

  • jquery 操作DOM案例代码分享

    实例如下: 复制代码 代码如下: <style type="text/css"> body{ margin:0; padding:40px; background:#fff; font:80% Arial, Helvetica, sans-serif; color:#555; line-height:180%; } img{border:none;} ul,li{ margin:0; padding:0; } li{ list-style:none; float:left;

  • javascript针对DOM的应用分析(五)

    其实这个应该不列入JS教程的范畴.应为FF,IE6以上浏览器都支持fixed这个固定属性.唯独IE6不支持.所以我为了可恶的IE6.我这里就出一篇教程吧.而且这种效果也可以锻炼同学们的计算能力.以后很多效果都需要你的计算能力.哈哈 固定居中.或者固定在任何地方思想几乎是一样的.只你要算法清楚了.效果写起来就轻而易举了.先贴代码 body,div{padding:0px;margin:0px;} #gd{width:100px;height:100px;background:#F00;color:

  • JavaScript判断DOM何时加载完毕的技巧

    处理HTML DOM文档存在一个难题是,JavaScript可以在DOM完全加载之前执行,这会给你的代码引发不少的潜在问题.浏览器的渲染和操作顺序大致如下列表: HTML解析完毕 外部脚本和样式表加载完毕 脚本在文档内解析并执行 HTML DOM完全构造起来 图片和外部内容加载 网页完成加载 在网页头部并且从外部文件加载的脚本会在HTML真正构造之前执行.如前所述,这是个至关重要的问题,因为这两处执行的脚本并不能访问还不存在的DOM.幸好,我们还有若干的补救方法. 目前,最常用的级数是完全等待整

  • javascript 基础篇4 window对象,DOM

    他的属性也很丰富,因为我很懒,我就直接复制手册里的东西了: closed 获取引用窗口是否已关闭. defaultStatus 设置或获取要在窗口底部的状态栏上显示的缺省信息. dialogArguments 设置或获取传递给模式对话框窗口的变量或变量数组. dialogHeight 设置或获取模式对话框的高度. dialogLeft 设置或获取模式对话框的左坐标. dialogTop 设置或获取模式对话框的顶坐标. dialogWidth 设置或获取模式对话框的宽度. frameElement

  • javascript针对DOM的应用分析(四)

    下面我就写几个给大家看看 一,点击传参方法 复制代码 代码如下: <script> function tab(dom){ var list = document.getElementById("list").getElementsByTagName("li"); var con = document.getElementById("con").getElementsByTagName("div"); for(var

  • JavaScript学习笔记之DOM操作实例分析

    本文实例讲述了JavaScript学习笔记之DOM操作.分享给大家供大家参考,具体如下: 一.DOM概念 1. "D":Docment,指的是文档 2. "O":Object,指的是对象,在javascript有三种对象:用户定义对象.内建对象(JavaScript语言对象.如Math,Array).宿主对象(浏览器对象) 3. "M":Model,值得是Model,某种事物的表现形式 二.节点 1. 元素节点 :<body> <

  • javascript将DOM节点添加到文档的方法实例分析

    本文实例讲述了javascript将DOM节点添加到文档的方法.分享给大家供大家参考.具体如下: 这里对两种方法进行了比较:第一种:先创建所有节点,再添加到文档方式的运行时长:第二种:先向文档添加一个空容器,然后每创建一个节点,再添加到容器中方式的运行时长,从测试来看,第二种方法优于第一种! 运行效果如下图所示: 具体代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq

  • javascript基于DOM实现权限选择实例分析

    本文实例讲述了javascript基于DOM实现权限选择的方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>权限选择</title> &

  • JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析

    本文实例讲述了JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作.分享给大家供大家参考,具体如下: createElement,createTextNode,appendChild,insertBefore,removeChild,replaceChild createElement 以下代码是用于创建 <p> 元素: var para = document.createElement("p"); createTextNode 为 <p>

  • JavaScript针对网页节点的增删改查用法实例

    本文实例讲述了JavaScript针对网页节点的增删改查用法.分享给大家供大家参考.具体分析如下: 一.基本概念 这部分也就是所谓的"HTML DOM",所谓HTML DOM也就是Web页面加载规则,是一个规则,也就是网页组成的基本公式. 也就是所有网页都必须按照:<html><body></body></html>--的规则编写,也按照这样的规则加载. 所谓的"网页节点",也叫"DOM节点"的通俗

随机推荐