js学习进阶-元素获取及样式设置

Posted HeroBo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js学习进阶-元素获取及样式设置相关的知识,希望对你有一定的参考价值。

var imgs = document.querySelectorAll("article img");

获得article元素的直接或间接子孙的所有img元素,

<article>
    <img src = "..." />
    <div>
         <img src = "..." />
    </div>
</article>

  获取2个img元素。

另一个方法querySelector()只返回找到的第一个结果。

其他的获取元素的写法区别:

获取article直接子元素:var imgs = document.querySelectorAll("article> img");

获取紧跟在一个元素后面的所有某个元素: var imgs = document.querySelectorAll("img + p");

获取一个空属性的某个元素:  var imgs = document.querySelectorAll("img[alt=‘‘]");

获取属性不为空的某个元素: var imgs = document.querySelectorAll("img:not([alt=‘‘])");

/*querySelectorAll()获取的元素集合不是“动态”的,如果更新发布在获取集合之后,页面所做的更新不会反映在集合之中,通常使用的getElementById() 效率更高*/

 

css样式设置(三种):

通过元素的style属性来修改:elem.style.backgroundColor = "red";

/*样式命名“驼峰”表示法,第二个单词大写*/

修改单个元素的一个或多个属性:

    elem.setAttribute("style","background-color:red;  color:white;  border:1px solid black");

预定义样式,设置元素的class属性:

1 .stipe{
2   background-color:red;
3   color:white;
4   border:1px solid black;    
5 }
6 ....
7 elem.setAttribute("class","stripe");

对于获取某个元素属性值使用getAttribute(),

要访问一个元素在某一时刻的具体样式设置,比较复杂,也没太明白,这里先放一个例子,供以后参考:

var elem = document.getElementbyId("test");

var bkcolor = elem.currentStyle ? elem.currentStyle["backgroundColor"] :
    
        window.getComputedStyle(elem).getPropertyValue("background-color");

console.log(bkcolor);

  可以跨浏览器工作,以后接触到再重新研究一下!

以上是关于js学习进阶-元素获取及样式设置的主要内容,如果未能解决你的问题,请参考以下文章

四 JS 进阶

js进阶之js三大家族:offset,scroll,client

js学习总结----设置元素的样式值setcss

Vue学习笔记进阶篇——多元素及多组件过渡

原生js获取元素样式值

jQuery获取设置样式