国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript針對(duì)DOM的應(yīng)用分析(四)

2024-05-06 14:22:06
字體:
供稿:網(wǎng)友
下面我就寫幾個(gè)給大家看看
一,點(diǎn)擊傳參方法
代碼如下:
<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元素,這個(gè)不用說了吧。寫什么效果第一件事都是獲取元素
代碼如下:
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元素,找到和傳進(jìn)來的dom一樣的東西,然后把他的class設(shè)置為on,并且把相對(duì)應(yīng)的div給顯示出來,其他的就全部把className設(shè)置為空,并且把對(duì)應(yīng)的div給隱藏。
大概就是這樣。但是大家肯定就都發(fā)現(xiàn)了這樣的寫法的缺點(diǎn),就是每個(gè)li都要設(shè)置一個(gè)onclick時(shí)間傳入它自己。這樣有點(diǎn)違反了結(jié)構(gòu)與表現(xiàn)相分離的道理。所以我們就換種寫法
二,直接寫入鼠標(biāo)事件方法
代碼如下:
<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>

只是簡單的改動(dòng)一下就可以了,因?yàn)樵贘S中有這些方法可以用比如onclick,onmouseover等等,但是用的時(shí)候我要先把所有的要用這個(gè)事件的元素都遍歷一下,如果那個(gè)被點(diǎn)擊就會(huì)傳入一個(gè)this,我們只需要像第一種方法一樣判斷一下list是不是和這個(gè)this相同,然后下面的操作和第一種方法一樣
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 台东市| 曲沃县| 康定县| 抚顺市| 呼和浩特市| 马山县| 玉环县| 万源市| 靖边县| 赞皇县| 乌拉特后旗| 天峨县| 建始县| 宁阳县| 无极县| 搜索| 宣汉县| 盐城市| 鹿泉市| 崇左市| 赤城县| 瑞昌市| 白水县| 同江市| 涟源市| 佛教| 监利县| 徐水县| 沽源县| 西乌| 阿克陶县| 新干县| 奉贤区| 阳朔县| 浏阳市| 永年县| 宿松县| 应城市| 五台县| 缙云县| 原阳县|