美文网首页
JavaScript获取元素的方法

JavaScript获取元素的方法

作者: 追逐_e6cf | 来源:发表于2019-02-12 19:06 被阅读0次

一、获取元素的所有方法

  1. 通过id直接获取(极其不推荐),但是在调试代码的时候非常好用。
  2. 通过document直接获取,包括head、title、body。
  3. 通过类名获取,getElementsByClassName获取的是HTMLCollection,是一个类数组,IE8以下不兼容。
  4. 通过标签名获取,getElementsByTagName获取的是HTMLCollection,也是一个类数组。
  5. 通过name获取,getElementsByName获取的是NodeList节点列表,也是一个类数组。
  6. 即便只有一个元素,也要通过[0]获取。
  7. 对于类名/标签名/name,我们可以先确定选择范围,再进行下一步选择。
  8. querySelector,IE7开始,微软率先提出了querySelector HTML5的标准,可以支持通过css3选择器的方式选择元素,querySelector如果选取的是一组元素的话,只会获得第一个。性能极低。
  9. querySelectorAll获取全部对象集合,是一个NodeList类数组,如果是单独的元素,也是放在类数组当中。
var oBox = document.getElementById("box");
console.dir(oBox);//打印对象详情

console.log(box);//通过id直接获取

console.log(document.head);
document.head.innerHTML += "<meta>";
console.log(document.title);
document.title = "哈喽";
console.log(document.body);

var aBox = document.getElementsByClassName('mybox');
console.log(aBox[0].innerHTML = "123");

var aBox = document.getElementsByTagName('div');
console.log(aBox[0]);

var aBox = document.getElementsByName('name');
console.log(aBox);

var myTxt= document.getElementsByTagName('ul')[1].getElementsByTagName('li')[1].innerHTML;
console.log(myTxt);

var myTxt = document.querySelector('.season>li:nth-child(2)').innerHTML;
console.log(myTxt);

二、动态获取与静态获取

  1. 静态获取:对于getElementById获取到元素之后,元素不会重新获取,可以对其进行随意更改。querySelector、querySelectorAll都为静态获取。
  2. 动态获取:对于getElementsByTagName、getElementsByClassName、getElementsByName,元素是动态获取的。
  3. 简单的说,静态获取页面的内容只有页面原本的内容,若是通过js动态添加了一个标签,静态获取的方式是获取不到的,只能通过动态获取的方法。
var oBox = document.getElementById('box');
oBox.id = 'myBox';
oBox.innerHTML = '111';//报错,页面中找不到id为box的元素

var aBox = document.getElementsByClassName('mybox');
aBox[0].className = 'newBox';
aBox[0].innerHTML = '222';

var oUl = document.getElementById('myul');
var oBtn = document.getElementById('btn');
// var oLis = document.getElementsByClassName('lis');
var oLis = document.querySelectorAll('.lis'); 
oBtn.onclick = function(){
    oUl.innerHTML += "<li class='lis'>6</li>";
    console.log(oLis.length);
}

三、伪元素的获取

  1. ::first-letter 特殊样式加到首字母。
  2. ::first-line 特殊样式加到首行。
  3. ::before 在元素之前插入。
  4. ::after 在元素之后插入。
  5. 伪元素是css渲染的,并不存在于document当中,无法获取。只能通过getComputedStyle(),括号里传入对象和伪类,然后获取样式采用getComputedStyle(1, 2)[attr]这样的方式,若没有伪类写null或者不写。
<style>
    #box::after{
        content: '456';
        display: block;
    }
</style>
<body>
    <div id="box">123</div>
</body>
<script>
    var oBox = document.getElementById('box');
    // var oAf = document.querySelector('#box::after');//获取不到
    // var oAf = document.querySelector('#box:after');//获取不到
    console.log(getComputedStyle(oBox,':after')['content']);
</script>

相关文章

  • JavaScript 获取元素方法

    仅供学习,转载请注明出处 获取元素方法一 可以使用内置对象document上的getElementById方法来获...

  • JavaScript获取元素的方法

    一、获取元素的所有方法 通过id直接获取(极其不推荐),但是在调试代码的时候非常好用。 通过document直接获...

  • 一、JavaScript之获取和设置元素属性

    JavaScript之获取和设置元素属性 1.与我前面的随笔获取元素的那些方法不同(http://www.cnbl...

  • 判断一个元素是否在当前可视区域

    javascript中提供了一个方法Element.getboundingclientrect()可以获取当前元素...

  • 获取元素

    html代码示例: javascript获取元素 通过id获取元素 通过TagName获取元素 通过ClassNa...

  • JavaScript盒子模型及其属性

    JavaScript盒子模型,指的是通过JavaScript中提供的一系列的属性和方法,获取页面中元素的样式信息值...

  • javascript获取元素

    JS获取DOM元素的方法(9种) 通过ID获取(getElementById) 通过name属性(getEleme...

  • Javascript获取元素

    1.根据id获取元素(getElementById) 2.根据class获取元素(getElementsByCla...

  • 02-JQuery操作DOM

    一、JS获取DOM元素和JQuery获取DOM元素的区别 JavaScript获取的是DOM对象,而Jquery获...

  • JavaScript获取dom元素

    获取dom元素的方法 通过标签名获取dom元素 通过id名获取dom元素 通过类名获取元素 HTML5新方法 通过...

网友评论

      本文标题:JavaScript获取元素的方法

      本文链接:https://www.haomeiwen.com/subject/tqskeqtx.html