javascript基础DOM对象6.0

9、DOM对象

HTML代码:

<div id="dd">
演示
</div>

<ul>
  <li>空调</li>
  <li class = "sp">空空</li>
  <li>冰镇西瓜</li>
</ul>

<span class = "sp">
  根据class来获取对象
</span>

<p name="pp">name=dd</p>
<i name="pp">name=dd</i>
<a name="pp">name</a>

<ol>
  <li>吃饭</li>
  <li>睡觉</li>
  <li>打豆豆</li>
<ol>

javascript代码:

(1)、通过id来获取元对象

//根据id值获取  对象
var obj = document.getElementById("dd");
//为对象设置css样式  属性值要双引号
obj.style.color = "red";

(2)、根据标签名来获取对象

//document.getElementsByTagName("标签名");返回一个集合【数组】
//这里取到的是所有li  所以lis里面元素有多个
var lis = document.getElementsByTagName("li");
//设置背景颜色为绿色
lis[2].style.backgroundColor = "green";
//设置字体颜色为红色
lis[2].style.color = "red";

(3)、通过class属性值来获取对象

//根据class的属性值
var temps = document.getElementsByClassName("sp");
//对获取的很多个sp  进行遍历
for (var i<0; i<temps.length; i++) {
    temps[i].style.color = "orange";
    temps[i].style.backgroundColor = "grey";
    temps[i].style.fontSize = "40px";
}

(4)、通过name属性值来获取对象

//返回一个集合
var pps = document.getElementsByName("pp");

for (var i=0; i<pps.length; i++) {
    pps[i].style.color = "green";
    pps[i].style.display = "block";
    pps[i].style.border = "1px solid blue";
}

(5)、HTML5中新提供的方式

只返回匹配到的第一个元素,返回的是一个对象。

//document.querySelector("选择器");
var fli = document.querySelector("ol>li");
//只为一个元素设置
fli.style.color = "blue";

返回所有匹配的元素,返回值都是集合【数组】 

//document.querySelectorAll("选择器");
var olis = document.querySelectorAll("span");
for (var i=0; i<olis.length; i++) {
    olis[i].style.color = "red";
    olis[i].style.fontSize = "50px";
}

 (6)、练习

HTML代码:

<ul>
    <li>吃饭</li>
    <li>睡觉</li>
    <li>打豆豆</li>
</ul>

  <ul id="u1">
    <li class="orange">抽烟</li>
    <li>喝酒</li>
    <li>烫头</li>
  </ul>

练习6-1:点击变为字体变为红色,再次点击变回颜色

javascript代码:

//通过js代码绑定事件
//当使用循环绑定事件时,this指代当前触发事件的元素对象
var lis = document.getElementsByTagName("li");
for (var i=0; i<lis.length; i++) {
//为单个元素添加点击事件
    lis[i].onclick = function() {
//这里进行判断 如果当前字体颜色为红色  则更改字体颜色
        if(this.style.color = "red") {
            this.style.color = "black";
        }
        else {
            this.style.color = "red";
        }
    };
}

练习6-2:鼠标悬停事件,鼠标移动导致颜色变化

javascript代码:

var lis = document.querySelectorAll("#ul>li");
for(var i=0; i<lis.length; i++) {
//:hover 也可以达到效果
//鼠标悬停
    lis[i].onmouseover = function() {
        this.className = "orange";
    };
//鼠标移出
    lis[i].onmouseout = function() {
    this.className = "";
    };

//另一种方式实现
/*lis[i].onmouseover = function() {
  var temp = document.querySelector("#ul>.orange");  
temp.className = "";
//鼠标在上时 此时颜色为橙色 this.className = "orange"; }
*/

 练习6-3:点击块更改背景颜色

HTML代码:

<div id="div1" class="redtooarange" index="jds">
又是美好的一天
</div>
<input type="button" id="btn1" value="移出div中的index属性/>

CSS代码:

#div1 {
    font-family: "微软雅黑";
    font-size: 40px;
    width: 300px;
    height: 100px;
    text-align: center;
    line-height: 100px;
}
.redtooarange{
    color: red;
    background-color: yellow;
}
.orange_red {
    color: yellow;
    background-color: red;
}

javascript代码:

方法a

var obj = document.getElementById("div1");
obj.onclick = function() {
//如果点击字体样式为红色   则改变字体为黄  背景为红  
    if(this.style.color = "red") {
        this.style.color = "yellow";
        this.style.backgroundColor = "red";
    }
    else {
//反之 字体变为红色  背景变为黄色
        this.style.color = "red";
        this.style.backgroundColor = "yellow";
    }
}

方法b

var obj=document.getElementById("div1");
obj.onclick=function(){
    if(this.className == "redtooarange") {
        this.className = "orange_red";
    }
    else {
        this.className = "redtooarange";
    }
}

移除属性

//获取按钮对象
var
btn = document.getElementById("btn1");
//按钮点击事件 btn.onclick
= function() {
//获取div块元素
var dd = document.getElementById("div1");
//删除div的属性 dd.removeAttribute(
"index"); };

练习6-4:对网页中的文本进行操作

HTML代码:

<div id="div1">
    操作内容
</div>
<input type="button" id="btn1" value="修改内容" />
<ul>              
    <li>西瓜</li>   
    <li>葡萄</li>   
</ul>
<input type="button" id="btn2" value="添加到 西瓜前" />
<input type="button" id="btn3" value="添加到 葡萄后" />             

CSS代码:

#div1{                       
    width: 400px;            
    height: 400px;           
    border: 1px solid black; 
}                            

div块中内容的修改:

var btn = document.getElementById("btn1");
btn.onclick = function() {
//获取div块的对象
    var dd = document.getElementById("div1");
//标签内部的内容
    dd.innerHTML = "修改了内容";
//追加内容
    dd.innerHTML += ”追加的内容";
//追加含有HTML标签的内容
    dd.innerHTML += "<br><span>这是追加的span标签</span>";
};

 

在ul块前面添加li元素:

//用来计数的
var no = 0;
var btn2 = document.getElementById("btn2");
btn2.onclick = function() {
     //获取ul列表对象
    var li = document.createElement("li");
    li.innerHTML = "新增的li" + no;
    no++;
    li.style.color = "green";
    var ul = document.querySelector("ul");
//找到要插入的位置的标签对象
    var oli = document.querySelector("ul>li");

//将元素插入到指定位置
    ul.insertBefore(li, oli);

在ul列表后添加li块元素:

var btn3 = document.getElementById("btn3")'
btn3.onclick = function() {
    var ul = document.querySelector("ul");
    ul.innerHTML += "<li>香蕉</li>";
//创建标签对象
    var t = document.createElement("li");

//对对象的操作
    t.innerHTML = "水蜜桃";
    t.style.color = "red";
    t.style.backgroundColor = "green";
    var ul  = document.querySelector("ul");

//把创建的对象,添加到父级元素的末尾
    ul.appendChild(t);
};

 练习6-5:点击列表中的图片,显示到指定区域

HTML代码:

<div id="container">                                                         
    <div><img src="img/Desert.jpg" width="500" height="400" id="img1"/></div>
    <ul>                                                                     
        <li><img src="img/Desert.jpg"/></li>                                 
        <li><img src="img/Hydrangeas.jpg"/></li>                             
        <li><img src="img/Jellyfish.jpg"/></li>                              
        <li><img src="img/Koala.jpg"/></li>                                  
        <li><img src="img/Lighthouse.jpg"/></li>                             
    </ul>        
</div>                                                                                                   

CSS代码:

*{                      
    padding: 0;         
    margin: 0;          
}                       
#container{             
    width: 700px;       
    height: 600px;      
    text-align: center; 
    margin: 0 auto;     
}                       
ul{                     
    list-style: none;   
}                       
ul>li{                  
    float: left;        
    width: 100px;       
    height:80px ;       
    margin-left: 40px;  
}                       
ul img{                 
    width: 100px;       
    height:80px;        
}                       

javascript代码:

//获取所有图片 并返回集合
var imgs= document.querySelectorAll("ul img");   
//遍历集合中每个图片元素
for(var i=0;i<imgs.length;i++){               
//对每个图片对象进行事件绑定   
    imgs[i].onclick=function(){         
//存放当前被点击图片的路径         
        var src=this.src;                        
//获取显示区域的对象
        var obj=document.getElementById("img1"); 
//进行路径赋值
        obj.src=src;                             
    };                                           
}                                                

 

posted @ 2020-08-13 16:00  上天安排的最大嘛!  阅读(118)  评论(0编辑  收藏  举报