zoukankan      html  css  js  c++  java
  • JS选取DOM元素的方法

    JS选取DOM元素的方法
    注意:原生JS选取DOM元素比使用jQuery类库选取要快很多
    1、通过ID选取元素
    document.getElementById('myid');
    2、通过CLASS选取元素
    document.getElementsByClassName('myclass')[0];
    3、通过标签选取元素
    document.getElementsByTagName('mydiv')[0];
    4、通过NAME属性选取元素(常用于表单)
    document.getElementsByName('myname')[0];


    JS修改CSS样式
    document.getElementById('myid').style.display = 'none';


    JS修改CLASS属性
    document.getElementById('myid').className = 'active';
    如果有多个CLASS属性,即用空格隔开
    document.getElementById('myid').className = 'active div-1';
    移除该元素上的所有CLASS

    document.getElementById('myid').className = '';

    注意:使用classList会优于使用className

    document.getElementById('myid').classList.item(0);//item为类名的索引

    document.getElementById('myid').classList.length;//只读属性

    document.getElementById('myid').classList.add('newClass');//添加class

    document.getElementById('myid').classList.remove('newClass');//移除class

    document.getElementById('myid').classList.toggle('newClass');//切换,有则移除,没有则添加

    document.getElementById('myid').classList.contains('newClass');//判断是否存在该class

    补充:add和remove方法不允许链式操作,因为返回的都是undefined,其次,也不允许同时添加或删除多个class,可以自行扩展一下

    [javascript] view plain copy
    1. DOMTokenList.prototype.adds = function(tokens){  
    2.     tokens.split(' ').forEach(function(token){  
    3.         this.add(token);  
    4.     }).bind(this));  
    5.     return this;  
    6. };  
    7. var clList = document.body.classList;  
    8. clList.adds('a b c').toString();  
    9. //a b c  


    JS修改文本
    document.getElementById('myid').innerHTML = '123';


    JS创建元素并向其中追加文本
    var newdiv = document.createElement('div');
    var newtext = document.createTextNode('123');
    newdiv.appendChild(newtext);
    document.body.appendChild(newdiv);
    同理:removeChild()移除节点,并返回节点
    cloneNode()复制节点

    insertBefore()插入节点(父节点内容的最前面)

    注意:insertBefore()有两个参数,第一个是插入的节点,第二个是插入的位置

    例子:

    var list = document.getElementById('myList');

    list.insertBefore(newItem,list.childNodes[1]);

    //插入新节点newItem到list的第二个子节点



    JS返回所有子节点对象childNodes
    var mylist = document.getElementById('myid');
    for(var i=0,i<mylist.childNodes.length;i++){
    console.log(mylist.childNodes[i]);
    }
    firstChild返回第一个子节点
    lastChild返回最后一个子节点
    parentNode返回父节点对象
    nextSibling返回下一个兄弟节点对象
    previousSibling返回前一个兄弟节点对象
    nodeName返回节点的HTML标记名称

  • 相关阅读:
    原来实现钉钉自动签到如此简单,每天准时上下班不是梦
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(下)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(中)
    12306 抢票系列之只要搞定RAIL_DEVICEID的来源,从此抢票不再掉线(上)
    python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
    发生线上故障后问责是不是第一要务
    软件工程是否可以直接应用于小团队
    阶段性正确的一点记录
    Java7新特性
    从server.xml看Tomcat容器的层次结构
  • 原文地址:https://www.cnblogs.com/wangshengli520/p/7737058.html
Copyright © 2011-2022 走看看