zoukankan      html  css  js  c++  java
  • DOM节点(二)

    全文手打,转载请注明出处

    一)节点属性操作

    ①获取属性值

      ★DOM节点.属性名            //不能获取用户自定义的属性

      ★DOM节点.getAttribute(属性名)    //万能

    ②设计属性值

      ★DOM节点.属性名 = 属性值

      ★DOM节点.setAttribute(属性名,属性值)    

    ③删除属性值

      ★DOM节点.属性名 = ' '    //空字符串

      ★DOM节点.removeAttribute(属性名)

    <button id = "btn">切换图片</button>
    <img src = "images/bg1.jpg" data-src = "images/bg2.jpg" alt = "图片" />  //有data-是用户自定义属性
    <img  data-src = "images/bg2.jpg" alt = "图片" />  //没有src图片出不来
    
    <script>
    //①获取属性值
    //  ★DOM节点.属性名            //不能获取用户自定义的属性
    //  ★DOM节点.getAttribute(属性名)    //万能,1次只能拿1个属性
    //获取图片
    var img = document.getElementsByTagName('img');
    console.log(img[0].src);      //获取的是图片的完整路径,拿到浏览器中可以打开
    console.log(img[0].alt); 
    console.log(img[0].data-src);    //用户自定义属性报错
    console.log(img[0].data);    //undefined
    console.log(img[0].getAttribute(src)); 
    console.log(img[0].getAttribute(data-src));   //可以
    
    
    //②设计属性值
    //  ★DOM节点.属性名 = 属性值
    //  ★DOM节点.setAttribute(属性名,属性值)  
    img[1].src = 'images/bg1.jpg';
    img[1].data-src = 'images/bg1.jpg';     //报错
    document.getElementsById('btn').onclick = function(){
      alert();   //测试好用不
      var url = img[0].getAttribute('data-src');
      img[0].setAttribute('src',url)
    }
    
    
    //③删除属性值
    //  ★DOM节点.属性名 = ' '    //空字符串
    //  ★DOM节点.removeAttribute(属性名) 
    img[1].src = ' '
    img[1].removeAttribute('src')
    
    
    </script>

    二)节点文本操作

    ①获取文本内容

      ★节点.innerHTML       //获取节点下的所有内容,包括标签

      ★节点.innerText      //获取节点下的文本内容,过滤掉标签

      ★节点.value            //获取input输入框等表单控件的内容

      ★节点.getAttribute("value")            //value是表单输入框的属性,可用getAttribute获得value值

    ②设计文本内容

      ★节点.innerHTML = "文本内容"       //会翻译html标签

      ★节点.innerText= "文本内容"      //不会翻译html标签

      ★节点.value = 值            //获取input输入框等表单控件的内容

      ★节点.setAttribute("value",值)            //value是表单输入框的属性,可用setAttribute设置value值

    ③删除文本内容

      ★节点.innerHTML = " "       

      ★节点.innerText= " "      

      ★节点.value = " "

      ★节点.removeAttribute("value")      

    <button id = "btn"><span>这是</span>切换图片</button>
    <img src = "images/bg1.jpg"  data-src = "images/bg2.jpg" alt = "图片" />
    <img data-src = "images/bg2.jpg" alt = "图片" />
    <form>
        <input type = "text" name = "txt" value = "这是表单文本框的内容"><br>
        <input type = "radio" name = "sex" value = "1"><input type = "radio" name = "sex" value = "2">女<br>
    
        <input type = "checkbox" name = "hobby" value = "睡觉觉">睡觉觉
        <input type = "checkbox" name = "hobby" value = "恰饭饭">恰饭饭
        <input type = "checkbox" name = "hobby" value = "游戏戏">游戏戏<br>
    
        <input type = "button" id = "ok" value = "提交">
    </form>
    
    <script>
    // ①获取文本内容
    //  ★节点.innerHTML       //获取节点下的所有内容,包括标签(必须双标签)<></>
    console.log(document.getElementById('btn').innerHTML);    //返回button中间的所有<span>这是</span>切换图片
    
    //  ★节点.innerText      //获取节点下的文本内容,过滤掉标签
    console.log(document.getElementById('btn').innerText);    //文本内容,这是切换图片
    
    //  ★节点.value            //获取input输入框等表单控件的内容
    console.log(document.getElementByName('txt')[0].value);    //表单
    console.log(document.forms[0].txt.value);                       //把input放到form标签里,第二种写法
    console.log(document.querySelector('input').value);             //第三种写法
    document.forms[0].txt.onblur = function (){        //onblur:事件(失焦时触发该事件)注册登录时,失焦用于检测合法不
        console.log(document.forms[0].txt.value);
        console.log(this.value);                                    //简写,this代表当前的DOM对象
        if(this.value == 'aaa'){
            alert('登陆成功!');
            location.href = 'https://baidu.com'         //location.href用于动态跳转,a标签是静态跳转
        } else{
            alert('账号不正确!');
        }
    }
    
    //  ★节点.getAttribute("value")            //value是表单输入框的属性,可用getAttribute获得value值
    console.log(document.forms[0].txt.getAttribute("value");    //只能获取标签属性的值,不能获取标签的文本内容
    
    // ②设计文本内容 // ★节点.innerHTML = "文本内容" //会翻译html标签 document.getElementById('btn').innerHTML = "aaa"; //修改为aaa document.getElementById('btn').innerHTML = "这是一个<strong>aaa</strong>"; //修改为这是一个粗aaa粗,会自动解析标签 // ★节点.innerText= "文本内容" //不会翻译html标签 document.getElementById('btn').innerTest = "aaa"; //只是文本时,和上面用法相同 document.getElementById('btn').innerTest = "这是一个<strong>aaa</strong>"; //不会自动解析标签 // ★节点.value = 值 //获取input输入框等表单控件的内容 document.forms[0].sex.value = 1; //默认radio选中1 document.forms[0].hobby.value = '恰饭饭'; //不能通过value设置默认checkbox选项 document.forms[0].hobby[1].checked = true; //第2项被选中 document.forms[0].hobby[1].checked = false; //第2项取消被选中 document.querySelector('#ok').onclick = function() { //单击”提交“按钮获取所有复选框被选中的内容 var chks = document.forms[0].hobby; //获取所有复选框DOM var arr = []; for (var i in chks) { if(chks[i].checked){ //如果被选中 arr.push(chks[i].value); //获取值 } } } // ★节点.setAttribute("value",值) //value是表单输入框的属性,可用setAttribute设置value值 document.forms[0].hobby[0].setAttribute('checked',true); document.forms[0].hobby[0].setAttribute('checked',haha); //'checked'后面给什么值都选中 document.forms[0].hobby[0].setAttribute('value','1');
    // ③删除文本内容 // ★节点.innerHTML = " " document.getElementById('btn').innerHTML = " " // ★节点.innerText= " " document.getElementById('btn').innerText= " " // ★节点.value = " " document.forms[0].hobby[0].value = " "; // ★节点.removeAttribute("value") document.forms[0].hobby[0].removeAttribute('value'); </script>

    三)DOM节点样式操作

    ①获取样式class

      ★节点.className       //获取节点下的所有class

      ★节点.getAttribute("class")     //获取节点下的所有class

    ②设计样式class

      ★节点.className = 值       

      ★节点.setAttribute("class",值)  

    ③其他样式class

      ★节点.classList.add(value)       //为元素添加指定的类

      ★节点.classList.contains(value)       //判断元素是否含有指定的类,如果存在返回true

      ★节点.classList.remove(value)       //删除指定的类

      ★节点.classList.toggle(value)       //有就删除,没有就添加指定的类

    <style>
    .p-style{
        color:red;
        background-color:gray;
        font-size:30px;
        font-weight:bold;
    }
    .demo{
        border:1px solid #00f
    }
    </style>
    
    <p class = "test p-style">测试文本</p>
    <p class = "test">测试文本</p>
    
    <script>
    //①获取样式class
    //  ★节点.className       //获取节点下的所有class
    console.log(document.getElementsByClassName('test')[0].className);
    
    //  ★节点.getAttribute("class")     //获取节点下的所有class
    console.log(document.querySelector('.test').getAttribute.("class"));
    
    
    //②设计样式class
    //  ★节点.className = 值       
    document.getElementsByTagName('p')[1].className = 'p-style';
    document.getElementsByClassName('test')[1].className = 'p-style';
    
    //  ★节点.setAttribute("class",值)      
    document.getElementsByTagName('p')[1].setAttribute("class","p-style");
    document.getElementsByTagName('p')[1].setAttribute("class","demo test p-style");
    
    
    //③其他样式class
    //  ★节点.classList.add(value)       //为元素添加指定的类
    document.getElementsByTagName('p')[1].classList.add("aaa"); 
    
    //  ★节点.classList.contains(value)       //判断元素是否含有指定的类,如果存在返回true
    // var hs = document.getElementsByTagName('p')[1];
    if(document.getElementsByTagName('p')[1].classList.contains("p-style")){
        document.getElementsByTagName('p')[1].classList.remove("p-style")    //有就删除
    } else{
        document.getElementsByTagName('p')[1].classList.add("p-style");   //无就添加
    }
    
    //  ★节点.classList.remove(value)       //删除指定的类
    
    //  ★节点.classList.toggle(value)       //有就删除,没有就添加指定的类
    var dom = document.getElementsByTagName('p')[1];
    dom.onclick = function(){
        dom.classList.toggle("p-style");          //切换样式
    }
    
    </script>

    四)DOM操作内联样式

    ①获取样式class

      ★节点.style.样式属性名    //获取某个具体的内联样式

      ★节点.style.cssText          //获取某个节点所有的内联样式,返回字符串

    ②设计样式class

      ★节点.style.样式属性名 = 属性值                          //设置某个具体的内联样式

      ★节点.style.cssText = 属性值或属性值列表          //设置某个节点所有的内联样式

    <p style = "color:red;">测试文本1</p>
    <p style = "color:blue;font-size:28px;">测试文本2</p>
    
    <script>
    var pDom = document.querySelectorAll('p');
    //①获取样式class
    //  ★节点.style.样式属性名    //获取某个具体的内联样式
    console.log(pDom[0].style.color);           //red
    console.log(pDom[1].style.fontSize);        //28px
    
    //  ★节点.style.cssText          //获取某个节点所有的内联样式,返回字符串
    console.log(pDom[0].style.cssText);      //color:red;
    console.log(pDom[1].style.cssText);      //color:blue;font-size:28px;
    //将cssText返回的字符串转换为对象
    var str = pDom[1].style.cssText,arr = [],cssObj = {};
    arr = str.split(';');         //以;进行拆分,变成数组
    for(var i in arr){
        var newArr = null;
        newArr = arr[i].split(': ');        //以: 进行拆分
        cssObj[newArr[0]] = newArr[1];      //数组转化为对象
    }
    
    
    //②设计样式class
    //  ★节点.style.样式属性名 = 属性值                   //设置某个具体的内联样式
    pDom[0].style.color = 'pink';
    pDom[1].style.fontSize = '10px';
    
    //  ★节点.style.cssText = 属性值或属性值列表          //设置某个节点所有的内联样式
    document.querySelector('div').style.cssText = 'color:red;background-color:blue';
    
    </script>

    全文手打,转载请注明出处!  

    全文手打,转载请注明出处!

    全文手打,转载请注明出处!

  • 相关阅读:
    Linux的优缺点,Linux与windows的区别
    一文带你读懂 Mysql 和 InnoDB存储引擎
    由浅入深一个Demo带你认识Restful风格的架构
    同步锁Synchronized与Lock的区别?
    认识多线程中start和run方法的区别?
    Java多线程与并发相关问题
    初识WebSocket
    Tomcat与Nginx服务器的配合使用及各自的区别
    Java内存模型相关原则详解
    你对区块链的理解还停留在炒币上吗
  • 原文地址:https://www.cnblogs.com/goule/p/13578719.html
Copyright © 2011-2022 走看看