JavaScript操作DOM对象(二)

紧接上文===============gogogo

接着来讲操作节点的属性

语法:

getAttribute(“属性名”)

setAttribute(“属性名”,“属性值”)
注意:这个在做项目时经常用到

直接来看代码:

里面src的图片就自己去选择吧;

<body>
    <div>请选择类型:
        <input type="radio" id="img1" name="type" onclick="changimg(this)"/>1、坏人
        <input type="radio" id="img2" name="type" onclick="changimg(this)"/>2、好人
    </div>
 <div> 
     <img id="demo1"  width="500px" height="300px" src="xxx">
 </div>
    
</body>
<script>
    function changimg(obj){
    
    
         //首先获取需要改变的img标签对象
     var s1  =  document.getElementById("demo1");
         //判断需要更换的类型图片
         if(obj.getAttribute("id")=='img1') {
    
    
             s1.setAttribute("src","xxx")
         }else{
    
    
             s1.setAttribute("src","xxx");
         }
    }
</script>

操作元素:

DOM常用的增删改查节点的属性与方法:

属性/方法 描述
createElement( tagName) 创建一个标签名为tagName的新元素节点
A.appendChild( B) 把B节点追加至A节点的末尾
insertBefore( A,B ) 把A节点插入到B节点之前
cloneNode(deep) 复制某个指定的节点
removeChild( node) 删除指定的节点(父节点才能调用removeChild( ))
replaceChild( newNode, oldNode) 用其他的节点替换指定的节点(前边的替换后面的)
。。。。。。 更多请参考官方文档

在js中使用appendChild()在dom中追加元素

代码示例:
一、

//DOM中创建button新元素  
var btn=document.createElement("button");  
//文本内容  
var Context=document.createTextNode("我爱你,中国!");  
//将内容追加到button标签中  
btn.appendChild(Context);  
//在html中指定的元素中追加新元素  
document.getElementById("div1").appendChild(btn);  

二、

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("这是新文本。");
para.appendChild(node);

var element = document.getElementById("div1");
element.appendChild(para);
</script>

在js中使用removeChild()在dom中删除元素

代码示例:
一、

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>

<script>
var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.removeChild(child);
</script>

二、

 //获取父节点  
var pare=document.getElementById("context");  
//获取子节点  
var p=document.getElementsByTagName("font")[0];  
//删除父节点下面的子节点,如果不获取父节点直接来删除子节点就无法删除  
pare.removeChild(p)  

在js中使用replaceChild() 方法在dom中替换元素

代码示例:

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("这是新文本。");
para.appendChild(node);

var parent = document.getElementById("div1");
var child = document.getElementById("p1");
parent.replaceChild(para, child);
</script>

在js中使用 insertBefore()方法在dom中替换元素

代码示例:

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>

<script>
var para = document.createElement("p");
var node = document.createTextNode("这是新文本。");
para.appendChild(node);

var element = document.getElementById("div1");
var child = document.getElementById("p1");
element.insertBefore(para, child);
</script>

再来看一个小案例:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script >
        function appendImge(obj){
    
    
            //目标:添加一个新的img到div
            //1.创建img节点
            var imgObj = document.createElement("img");
            imgObj.setAttribute("src","xxx");

            //2.将img节点插入div
            var divObjs = document.getElementsByTagName("div");
            //divObjs[1].appendChild(imgObj);
            // .insertBefore(imgObj);
            var afterImg = document.getElementById("wife");
            //divObjs.insertBefore(imgObj,afterImg);
            divObjs[1].insertBefore(imgObj,afterImg);
        }
        function cloneImge(){
    
    
            //浅克隆
            //var cloneImg = document.getElementById("wife").cloneNode(false);
            // document.getElementsByTagName("div")[1].appendChild(cloneImg);
           
            //深克隆
            var cloneLi = document.getElementById("l01").cloneNode(true);  
            document.getElementsByTagName("div")[1].appendChild(cloneLi);
        }
        function removeImge(){
    
    
            //目标:删除id="wife"的img标签
            //1.获取img的父节点
            var parentDiv = document.getElementById("l01");
            //2.获取所有img
           var imgArray= document.getElementsByTagName("img");
           for(var i in imgArray){
    
    
               if(imgArray[i].getAttribute("id") == 'wife'){
    
    
                parentDiv.removeChild(imgArray[i]);
                break;
               }
           }
        }
    </script>
</head>
<body>
    <div >你未来媳妇的类型:<input id="r01" type="radio" name="type" onclick="appendImge(this)"/>1.漂亮,有钱
    <input type="radio" id="r02" name="type"  onclick="cloneImge(this)" />2.贤惠、温柔</div>
    <input type="radio" id="r02" name="type"  onclick="removeImge(this)" />2.删除贤惠、温柔的类型</div>
    <div >
        <ul>
            <li id="l01">
                <img width="500px" height="300px" id="wife" src="xxx/>
            </li>
        </ul>
    
    </div>
</body>

希望对大家有用!!!!

猜你喜欢

转载自blog.csdn.net/weixin_52841956/article/details/112908091