搜索

js dom数选择器总结

原创 2019-03-09 11:58:42 407
摘要:总结:--------------------------------------------------------使用id属性获取元素id属性需要在Document文档节点对象中引用语法:document.getElementById('id名称')可以直接获取到id元素并设置样式,比如:document.getElementById('id名称').style

总结:

--------------------------------------------------------

使用id属性获取元素

id属性需要在Document文档节点对象中引用

语法:document.getElementById('id名称')


可以直接获取到id元素并设置样式,比如:document.getElementById('id名称').style.color="red"

也可以把document.getElementById('id名称')赋值给变量,使用变量设置样式,比如:变量名.getElementById('id名称').style.color="red"

-----------------------------------------------------------

根据name属性来获取元素,

返回一个元素集合,有length属性,可以当数组来访问

拥有name属性的元素并不多,最常见的就是表单,以及表单中的元素,另外还有图像和内联框架,

语法:document.getElementsByName('name名')

      返回的是数组

获取单个name的案例:

    let login3 = document.getElementsByName('login')[1];  //获取到第2个name名为login的元素

        login3.style.backgroundColor = 'green';           //并设置背景颜色

如果多个同名的name设置同一样式使用for循环遍历:

    let login = document.getElementsByName('login'); //获取name名为login的元素,返回的是数组 

    for(let i=0;i<login.length; i++){                //使用for循环遍历整个name名为login的长度值

        login[i].style.backgroundColor = 'yellow';   //设置样式

    }


-------------------------------------------------------------------

根据标签名Tag来获取元素

getElementsByTagName(),根据标签名称获取元素,返回一个元素集合,有length属性,可以当数组来访问

设置单个标签名案例:写法1(使用数组下标)

    let ul = document.getElementsByTagName('ul')[0];  //获取文档中第一个ul标签

    ul.style.backgroundColor = 'lightgreen';

设置单个标签名案例:写法2 使用item()也可以获取指定元素

    let ul1 = document.getElementsByTagName('ul').item(0); //获取文档中第一个ul标签

    ul1.style.backgroundColor = 'lightblue';

获取所有同名元素时,使用for循环遍历:

    let lists = document.getElementsByTagName('li');  //获取所有的标签名为li 的元素

    for (let i = 0; i < lists.length; i++) {          //遍历li元素的长度

        lists[i].style.backgroundColor = 'red';       //所有的li元素设置背景色

    }

-----

getElementsByTagName()不仅在document文档节点对象上有定义,在Element元素节点对象上也有定义

但是在父元素上调用该方法,先找到父级然后在找到第几个标签来设置。

案例:

    let ul2 = document.getElementsByTagName('ul').item(0);  // 获取ul 文档对象中第一个ul 

    item2.style.backgroundColor = 'green';              //设置样式

-----------------------------------------------------------------------------------------


使用标签名和name属性选择的快捷方式

据name标签名和name属性选择元素的快捷方式:仅适用于极少的几个:

    <img>图片使用:images

    <forms>表单使用:forms

    <a>元素私用:links

他们都有三种访问方式: 

方法1、标签索引  document.images[0].style.width = '200px';  //使用标签下标索引设置第一个图片的大小

方法2、name 属性 document.images['pic'].style.width = '200px'; //查找图片的name名为pic的的img标签,设置大小

方法3、将name视为元素对象的属性进行访问 document.images.pic.style.width = '300px'; //设置元素对象行为pic的img标准

方法4、数组可用item()方法获取某个元素document.images.item(0).style.width = '300px';  //设置第一个img图片

<forms>表单使用:forms  都可以使用上面4种写法

<a>元素私用:links      都可以使用上面4种写法

-----------

body元素、 head元素、html元素、doctype标签,同一个界面有一个,也可以使用name快捷属性获取:

    // body: <body>元素,总有定义,只有一个

    document.body.style.backgroundColor = 'wheat';  //设置网页的背景色

-----

    // head: <head>元素,总有定义,不写会自动添加,只有一个

    let style = document.createElement('style');     //在head中添加style元素

    document.head.appendChild(style);

-----

    // documentElement: <html>元素,总有定义,同样一个页面只有一个

    console.log(document.documentElement);           //在控制台中输出html元素内容

-----

    // doctype: 文档类型,同样也只有一个

    console.log(document.doctype);       //在控制台中输出Doctype文档类型

------------------------------------------------------------------------------------------------------


通过class属性选取元素

返回一个html元素集合,与根据标签名获取的返回数据类型完全一样,,有length属性,可以当数组来访问。

getElementsByClassName('class名')

根据元素的class属性值获取元素语法:

    let red = document.getElementsByClassName('class名'')  //获取class属性

    red[0].style.backgroundColor = 'red';             //设置第一个class


也可以直接写多个class属性

    let large = document.getElementsByClassName('class名'')[0]   //获取第一个class名为coral large的属性

    large.style.backgroundColor = 'coral';                          //设置多个样式

    large.style.fontSize = '1.5rem';


获取同名class可使用for循环遍历:

    let lists = document.getElementsByClassName('class名'); //获取class名

    for (let i = 0; i < lists.length; i++) {                //遍历整个class

        lists[i].style.backgroundColor = 'red';             //设置整个class名


同时class属性选中元素,也支持在父元素上调用

    document.getElementsByClassName('父级class名').item(0)

            .getElementsByClassName('子class名').item(0)

            .style.backgroundColor = 'green';               //设置子元素的背景色

--------------------------------------------------------------------------------


使用css选择器来获取元素

返回一个html元素集合,,有length属性,可以当数组来访问。

JS支持CSS选择器

document.querySelectorAll('标签名')

document.querySelectorAll('.class名')

document.querySelectorAll('#id名')

访问方法1:

当数组索引访问:document.querySelectorAll('标签名')[0].style.backgroundColor="red"; //索引标签名第一个元素设置背景色 

              document.querySelectorAll('标签名').item(0).style.backgroundColor="red"; //同上


该方法还可以在元素上调用,这也根据标签和class类名获取元素是一样的

querySelector('CSS选择器') 获取满足条件的第一个元素  等同于querySelectorAll('CSS选择器')[0]

案例:

    let ul = document.querySelector('#ul'); // 获取满足条件的第一个元素

    let li = ul.querySelectorAll('.green');  //获取满足条件的第一个元素(父元素)下的所有class名为.green的元素

    for (let i = 0; i < li.length; i++) {    //选好遍历class名为.green的元素的长度

        li[i].style.backgroundColor = 'green';  //使用数组索引下标方法设置背景色

    }

--------------------------------------------------------------

除了使用id属性获取元素以外,其他的根据name属性来获取元素、根据标签名Tag来获取元素、使用标签名和name属性选择的快捷方式、

通过class属性选取元素、使用css选择器来获取元素 都是返回一个html元素集合,,有length属性,可以当数组来访问。

访问方法:可以根据索引下标[0]来查找位置,或者使用.item(0)来获取位置,使用for循环遍历通条件的元素。

               


批改老师:韦小宝批改时间:2019-03-09 13:32:20
老师总结:写的非常不错 很详细 每个方法归纳的都很到位

发布手记

热门词条