【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~

这篇具有很好参考价值的文章主要介绍了【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、通过querySelector / querySelectorAll获取元素

1.1 单个标签选中

1.2 多个标签选中

 二、基于这组DOM API,对元素进行操作

2.1 innerHTML获取/修改元素内容

2.2获取/修改元素属性

三、单标签元素属性的获取和修改

3.1 value

3.2checked

3.3 type

四、样式属性的修改和获取

4.1 fontSize行内样式操作

4.2 类名样式操作

五、操作节点

5.1、新增节点

5.2、删除结点


一、通过querySelector / querySelectorAll获取元素

        浏览器提供的一个全局对象,类似于CSS中的选择器,可以精准的获取元素对象,这组API都来自于document下,document是浏览器提供的一个全局对象,表示当前页面DOM API基本都是documet对象的方法;

1.1 单个标签选中

        对于单个标签元素的获取,使用querySelector,即可;

如下代码:

    <div class="hello" id="hi">你好</div>
    <script>
        let div = document.querySelector('div');
        console.log(div);
    </script>

这时候就打开浏览器按下F12,选中控制台,就可以发现,刚刚获取的div元素结果都获取到了;(如下图)

queryselector,JavaScript,javascript,前端,html,css

1.2 多个标签选中

        querySelector只是获取单个元素标签,当出现多个相同的元素标签时,只会选中第一个;如果想把多个元素都获取到,可以使用querySelectorAll来完成操作,这个时候返回值就是一个数组,每个元素是一个对象;

如下代码:

    <div class="hello" id="hi">你好</div>
    <div class="word">世界</div>
    <div class="China">中国</div>
    <script>
        let divs = document.querySelectorAll('div');
        console.log(divs);
    </script>

打开浏览器按下F12,选中控制台就可以发现:(如下图)

queryselector,JavaScript,javascript,前端,html,css


 二、基于这组DOM API,对元素进行操作

2.1 innerHTML获取/修改元素内容

        通过innerHTML获取的是标签内部的子元素内容,所以只适用于双标签,单标签不可以的

获取元素并修改div内容(如下代码)

    <div>
        <span>hello</span>
        <span>world</span>
    </div>
    <script>
        let div = document.querySelector('div');
        //读取元素
        console.log(div.innerHTML);
        //修改元素
        div.innerHTML = '<p>这里修改了div元素里的内容</p>'
        console.log(div.innerHTML);
    </script>

执行效果如下图:

queryselector,JavaScript,javascript,前端,html,css

2.2获取/修改元素属性

        通过querySelector / querySelectorAll对元素对象的获取,可以通过此对象对标签属性的修改,修改的就是标签中写的键值对;

如下代码:点击空的a标签,修改href;(不光是这个栗子,其他所有标签的属性也是通过类似的方法进行操作)

    <a href="#">点我跳转百度</a>
    <script>
        let a = document.querySelector('a');
        a.onclick = function() {
            a.href = "https://www.baidu.com";    
        }
    </script>

三、单标签元素属性的获取和修改

3.1 value

        通过value获取单标签元素的内容,例如input的标签中,value表示了输入框的内容,修改他,浏览器上的样式也会跟着修改;

如下代码:点击计数(按下+,数字加一,按下-,数字减一)

    <input type="text" value="0">
    <button class="add">+</button>
    <button class="sub">-</button>
    <script>
        let input = document.querySelector('input');
        let add = document.querySelector('.add');
        let sub = document.querySelector('.sub');
        add.onclick = function() {
            //这里注意需要转化为int类型,否则就是字符串
            let oldValue = parseInt(input.value);
            oldValue = parseInt(oldValue + 1);
            input.value = oldValue;
        }
        sub.onclick = function() {
            //这里注意需要转化为int类型,否则就是字符串
            let oldValue = parseInt(input.value);
            oldValue = parseInt(oldValue - 1);
            input.value = oldValue;
        }
    </script>

3.2checked

        checked表示了当前复选框的状态——被选中或者未被选中;

如下代码:(单选和全选)

    <span>你有什么爱好?</span><br>
    <input type="checkbox" class="one">弹琴<br>
    <input type="checkbox" class="one">唱歌<br>
    <input type="checkbox" class="one">健身<br>
    <input type="checkbox" class="all">全选<br>
    <script>
        let solo = document.querySelectorAll('.one');//返回一个数组
        let all = document.querySelector('.all');
        all.onclick = function() {
            for(let i = 0; i < solo.length; i++) {
                solo[i].checked = all.checked;
            }
        }
    </script>

3.3 type

        表示了当前单标签的type属性是什么,同时也可以对其进行修改;

如下代码:(显示密码和隐藏密码)

    <span>输入密码:</span>
    <input type="password">
    <button>显示密码</button>
    <script>
        let input = document.querySelector('input');
        let button = document.querySelector('button');
        button.onclick = function() {
            if(input.type == 'password') {
                input.type = 'text';
                button.innerHTML = '隐藏密码';
            }else if(input.type == 'text') {
                input.type = 'password';
                button.innerHTML = '显示密码';
            }else {
                alert('类型错误!')
            }
        }
    </script>

四、样式属性的修改和获取

4.1 fontSize行内样式操作

       CSS中的元素属性,都可以通过JS进行修改,通过 元素.style.属性 即可得到style的属性,例如fontSize,这个属性名和CSS中的样式名是对应的,但是CSS里使用脊柱命名,js中是使用小驼峰命名,于是CSS中的font-size就可以认为等价于fontSize;

如下代码:点击字体,开始变大

    <h2 style="font-size: 30px;">点击我可以变大</h2>
    <script>
        let h2 = document.querySelector('h2');
        h2.onclick = function() { 
            let oldSize = h2.style.fontSize;
            oldSize = parseInt(oldSize);
            oldSize += 10;
            //设置样式的值的时候一定要带上单位!
            h2.style.fontSize = oldSize + 'px';
        }   
    </script>

4.2 类名样式操作

        CSS开发中最常用的是通过类选择器进行选择,通过修改class属性,实现修改样式的效果,而在JS中通过 元素.className 的方式获得属性,因为在 JS中class是一个关键字,于是就用className来表示这个类属性了~

如下代码:(白天模式and夜间模式)

    <style>
        /*白天模式*/
        .light {
            color: black;
            background-color: white;
        }
        /*夜间模式*/
        .night {
            color: aliceblue;
            background-color: black;
        }
        /*将div铺满整个网页*/
        /*html铺满其父类——整个浏览器*/
        html {
            height: 100%;
        }
        /*body铺满其父类html*/
        body {
            height: 100%;
        }
        /*div铺满其父类body*/
        div {
            height: 100%;
        }
    </style>
    <div class="light">
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae maiores maxime corrupti quaerat blanditiis laudantium odio. Quo totam temporibus quia earum enim. Doloremque ipsam sed debitis quod soluta, ea necessitatibus?
    </div>
    <script>
        let div = document.querySelector('div');
        div.onclick = function() {
            if(div.className == 'light') {
                div.className = 'night';
            }else {
                div.className = 'light';
            }
        }
    </script>

五、操作节点

5.1、新增节点

分为两个步骤:

第一步:创建元素结点(如下代码)

<body>
    <script>
        let div = document.createElement('div');
        div.id = 'mydiv';//设置id属性
        div.className = 'divName';//设置class属性
        div.innerHTML = '好久不见你还好吗?';
        console.log(div);
    </script>
</body>

解释:

        此时浏览器上并不会有显示,只是创建出了一个新的div结点并填充了属性;通过写下console.log(div),可以在浏览器的控制台里观察到此标签;(下如图)

queryselector,JavaScript,javascript,前端,html,css

第二步:把元素结点插入到dom树中;(有两种方法)

        方法一:通过appendChild 或者 append将结点插入到指定结点的最后一个孩子结点的后面(如下代码)

<body>
    <div class="target">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
    <script>
        let div = document.createElement('div');
        div.id = 'mydiv';//设置id属性
        div.className = 'divName';//设置class属性
        div.innerHTML = '好久不见你还好吗?';
        console.log(div);

        let target = document.querySelector('.target');
        target.appendChild(div);//这里也可以使用append达到同样的效果
    </script>
</body>

效果如下:(浏览器页面)

queryselector,JavaScript,javascript,前端,html,css

 效果如下:(浏览器控制台)

queryselector,JavaScript,javascript,前端,html,css

         方法二:使用 insertBefore(要插入的结点,要插入的位置) 将节点插入到指定的节点位置(如下代码,插入到下标为1的位置;“注意:下标从0开始”)

<body>
    <div class="target">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
    <script>
        let div = document.createElement('div');
        div.id = 'mydiv';//设置id属性
        div.className = 'divName';//设置class属性
        div.innerHTML = '好久不见你还好吗?';
        console.log(div);

        let target = document.querySelector('.target');
        target.insertBefore(div, target.children[1]);//表示插入到第1个孩子结点的位置(下标从0开始)
    </script>
</body>

效果如下:(浏览器页面)

queryselector,JavaScript,javascript,前端,html,css

  效果如下:(浏览器控制台)

queryselector,JavaScript,javascript,前端,html,css

5.2、删除结点

使用 removeChild 删除子节点

如下代码:

    <div id="top">
        <div>1</div>
        <div id="nested">我是要被删除的结点</div>
        <div>2</div>
    </div>
    <script>
        let d = document.getElementById("top");
        let nested = document.getElementById("nested");
        let throwawayNode = d.removeChild(nested);
    </script>

注意:

  • 返回值为该被删除节点;
  • 被删除节点只是从 dom 树被删除了, 但是仍然在内存中, 可以随时加入到 dom 树的其他位置;

queryselector,JavaScript,javascript,前端,html,css文章来源地址https://www.toymoban.com/news/detail-793505.html

到了这里,关于【JavaScript】基于querySelector / querySelectorAll对元素的操作,为你的DOM API基础扫盲~的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • “让我们为你添加账号”跳过方法以及后续操作

    按Ctrl+shift+f3就可以了 跳过之后别着急关机,现在是管理员账号,但微软是默认关闭管理员权限的 所以 1.打开cmd,查看自己电脑的用户账号 2.然后输入以下代码,显示账号信息 如果账号被停用,“帐户启用”那一行会显示“No” 如果账号已启用,“帐户启用”那一行会显示“

    2024年02月12日
    浏览(66)
  • 二分查找结果总是不对?一文帮你解决二分查找的边界问题&&数组移除元素太耗时间,双指针法为你打开新世界的大门,降时间复杂度为O(n)

      可能有粗心写的不正确的地方,或者因为技术有限写得不好的地方,欢迎大家批评指正,文章中给出的代码是本人自己写的leetcode中的代码,是代码的核心部分,如果放到本地编译器中,可能要加入mian()函数等内容。 LeetCode704二分查找    二分查找的思路非常简单,也就

    2024年02月08日
    浏览(54)
  • JavaScript元素选择器

    getElementsByTagName 俗称标签选择器,可以根据标签名查找匹配到页面的元素对象,返回为一个数组。 获取所有 p 标签的文本。 getElementsByName 俗称name选择器,可以根据name属性的值查找匹配到页面的元素对象,返回为一个数组。 getElementById 俗称 id 选择器 , getElementById(id) 方法查

    2024年02月04日
    浏览(30)
  • JavaScript--修改 HTML 元素

    这些是一些用于修改 HTML 元素的常见方法: 1、document.createElement(element):创建 HTML 元素节点。可以使用这个方法创建一个新的 HTML 元素, 例如 document.createElement(\\\'div\\\') 将创建一个 div 元素节点。 2、document.createAttribute(attribute):创建 HTML 属性节点。可以使用这个方法创建一个新

    2024年02月16日
    浏览(33)
  • JS javascript 点击鼠标 鼠标事件 获取元素 获取元素Xpath

    js代码,鼠标在页面点击时,记录元素的Xpath 代码:  

    2024年02月15日
    浏览(36)
  • JavaScript---获取、修改DOM元素

    1. 获取元素 1.1.  获取第一个元素,一个HTMLElement对象,可以修改   document.querySelector(\\\'css选择器\\\')    1.2. 获取多个元素,一个HTMLElement对象,不可以修改,得到的是伪数组 document.querySelectorAll(\\\'css选择器\\\')   2. 操作元素内容 2.1. 元素.innerText      只显示纯文本,不解析标签 

    2024年02月15日
    浏览(27)
  • js querySelector() 说明

    1,querySelector()方法只会返回第一个匹配的元素。如果想要选择所有符合条件的元素,需要使用querySelectorAll()方法。 2,选择器中的特殊字符需要进行转义。例如,如果要选择class为\\\"a.b\\\"的元素,选择器应该为\\\".a.b\\\"。在这个选择器中,\\\".\\\"是class选择器的标识符,\\\"a.b\\\"表示a.b需要进

    2024年02月17日
    浏览(28)
  • 介绍函数用法:document.querySelector

    document.querySelector 是一个 JavaScript 函数,它允许你通过提供一个 CSS 选择器来选择文档中的第一个匹配的元素。这个函数返回匹配的元素(如果找到了匹配项),否则返回 null 。 document.querySelector 是一个非常有用的方法,因为它让你可以通过多种选择器轻松地选择和操作 DOM 元

    2024年02月12日
    浏览(71)
  • javaScript与vue获取元素的方法

    目录 javaScript 1 根据ID获取 2 根据标签名获取 3 通过HTML5新增的方法获取 vue获取元素及兄弟元素,父级元素 get 获得 element 元素 by 通过 返回的是一个元素对象 document.getElementById(\\\'ID\\\'); get 获得 element 元素 by 通过 Tag标签 Name名字 返回带有指定标签名的对象的集合 以伪数组的形式

    2024年02月08日
    浏览(31)
  • javaScript:DOM元素的获取(静态/动态获取)

    目录 一.dom元素获取的意义与使用场景  使用场景(绝大多数js操作都需要dom操作) 总结/疑问解答!  二.DOM元素获取的常用方法(重点) 获取dom元素(动态) document.gerElementbyId() document.gerElementsBytagName() document.gerElementsByclassName() document.gerElementsByname()通过name属性查找元素 获

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包