前端小测----DOM测试38

2023-05-16

得分 

我得了2分,难受,明明感觉是3分的 哈哈

分析

其实这个题目就是对伪类进行了一定考察,我太菜了,呜呜呜

第一问获取所有匹配required必选的单选框元素

我的答案

var requiredInputAll = document.querySelectorAll("input[type='radio'][required]")

正解

let disabledArr = document.querySelectorAll('[type="radio"]:required');

为什么?

  • 首先input确实是不用加的因为type='radio'属性就已经可以了
  • :required伪类选择器,IE10+支持。和[required]属性选择器的区别,暂时还没找到,找到补充

第二问:获取所有匹配display禁用态的单选框元素

我的答案:其实我当时写的时候是不找到还可以有伪类这个东西的

    var disabledInputAll = []
    var disabledInputPart_1 = document.querySelectorAll("input[disabled]")
    var disabledInputAll = [...disabledInputPart_1]
    var disabledFieldsetInput = document.querySelectorAll("fieldset[disabled]")
    // console.log([].slice.call(disabledFieldsetInput)[0])
    Array.from(disabledFieldsetInput).forEach(item => {
      Array.from(item.querySelectorAll("input[type='radio']")).forEach(item => {
        if (!disabledInputAll.includes(item)) {
          disabledInputAll.push(item)
        }
      })
    })

正解:简单粗暴明了

let disabledArr = document.querySelectorAll('[type="radio"]:disabled');

为什么?

因为fieldset标签类的表达元素会继承fieldset的属性,所以当<fieldset>设置了disabled的时候他的子元素都会被设置

总结::disabled伪类,IE9+支持。和[disabled]属性选择器的区别,有些表单元素本身没有[disabled]属性,但是,自身是处于应用态的。这就是:disabled伪类设计的原因之一

第三问:获取所有checked选中态的单选框元素

我的答案

var checkedInputAll = document.querySelectorAll('input[checked]')

正确答案

var checkedInputAll1 = document.querySelectorAll('input:checked')

为什么?

:checked伪类,IE9+支持。和[checked]属性选择器的区别,有些单复选框虽然有[checked]属性,但是本身并不是选中态。这就是:checked伪类设计的原因之一

HTML:单选框name相同只可以选择一个,但是当我们写了2个后

<input type="radio" value="ba1" name="bookAuthor" checked>宅猪
<input type="radio" value="ba2" name="bookAuthor">西红柿
<input type="radio" value="ba3" name="bookAuthor" checked>莫默

JS

    var checkedInputAll = document.querySelectorAll('input[checked]')
    var checkedInputAll1 = document.querySelectorAll('input:checked')
    console.log(checkedInputAll.length, 'checkedInputAll--------------------') // 2
    console.log(checkedInputAll1.length, 'checkedInputAll--------------------') // 1

看输出结果是不一样的,所以我的分啊

第四问:获取ID为removeDisabled的按钮元素, 点击改按钮移除所有单选框元素的disabled禁用效果

我的答案:这个题目我应该是对了,但是就是谢的好像有点捞

    var removeDisabled = document.getElementById('removeDisabled')
    disabledInputPart_1.forEach(item => {
      item.removeAttribute('disabled')
    })
    disabledFieldsetInput.forEach(item => {
      item.removeAttribute('disabled')
    })

大佬的写法(我真的太菜了,其实意思是一样的)

// 这个是第二问的答案
const radiolist2 = document.querySelectorAll('[type=radio]:disabled');
// 第四问
const btn = document.querySelector('#removeDisabled');
btn.addEventListener('click',()=>{
    [...radiolist2].forEach(el=>{
      const fieldset = el.closest('fieldset:disabled');
      if (fieldset) {
        fieldset.disabled = false;
      }
      if (el.disabled) {
        el.disabled = false;
      }
    });
})

为什么?

Element.closest() 方法用来获取:匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身)。如果匹配不到,则返回 null

第五问

答案

    [type=radio]:invalid {
      outline: 3px dashed red;
    }

最优正解

    [type=radio]:invalid {
      outline: dashed red;
    }

为什么?

  • :invalid CSS 伪类 表示任意内容未通过验证的 <input> 或其他 <form> 元素
  • outline:的默认大小为3px
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端小测----DOM测试38 的相关文章

随机推荐

  • kubernetes--集群环境搭建

    本文将搭建一套master node node k8s集群环境 xff0c 需要准备三台至少cpu gt 2G mem gt 2G的虚拟机 xff0c 步骤如下 xff1a 1 在所有节点配置hosts并节点间的连接性 分别在三个节点配置h
  • 数据库服务器的安装与配置

    理论基础 数据库服务器是当今应用最为广泛的一种服务器类型 xff0c 许多企业在信息化建设过程中都要购置数据库服务器 数据库服务器主要用于存储 查询 检索企业内部的信息 xff0c 因此需要搭配专用的数据库系统 xff0c 对服务器的兼容性
  • IDEA刷新与清除缓存

    idea清除缓存 刷新项目 idea刷新与清除缓存的正确菜单 Build Project xff1a 更新Project下所有的Module Build Module xff1a 更新指定的Module Rebuild Project xf
  • VNC远程桌面安装配置

    VNC远程桌面安装配置 服务器 xff1a Linux centos 7 0 客户端 xff1a Windows 10 1 服务器安装vnc服务端2 编辑vnc配置文件3 客户端安装4 解决端口访问的问题 1 服务器安装vnc服务端 直接用
  • 第1章 计算机基础知识

    1 1 计算机的基本概念 xff08 1 xff09 计算机的发展 计算机的诞生 1946年第一台电子数字计算机ENIAC由美国宾夕法尼亚大学研制成功 它是一个庞然大物 xff0c 共有18000个电子管 1500个继电器 xff0c 耗电
  • WIN7系统下搭建Docker,部署ODL与mininet

    1 docker 安装 版本 xff1a 18 03 win7系统下和win10系统稍有不同 安装流程 xff1a https www runoob com docker windows docker install html 由于国外源问
  • Debian10中文环境配置

    在安装系统的时候会有一个语言区域选项 xff0c 不管当时选的什么 xff0c 在这里都可以更改 同时解决中文乱码问题 以下操作最好在root用户下进行 xff0c root用户操作起来方便一些 xff0c 不会被权限困扰 换源 最好在做所
  • Redis删除key

    Redis 删除 key 的方式分为两种 xff0c 一种是单独删除指定的 key xff0c 另一种是根据通配符进行批量删除 1 删除指定的 key 1 登录 Redis 客户端 redis cli 注 xff1a 如果提示 Redis
  • Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错

    Jlink下载stm32cube生成的程序会出现No Cortex M SW Device Found错误 xff0c 下载的第一次正常 xff0c 第二次就会报错的问题 作为写stm32的神器stm32cubemx越来越多人开始使用 xf
  • Hadoop 典型Writable类详解

    Hadoop 典型Writable类详解 Hadoop将很多Writable类归入org apache hadoop io包中 xff0c 在这些类中 xff0c 比较重要的有Java基本类 Text Writable集合 ObjectWr
  • 判断js数据类型的方法

    基本类型 String xff0c Number xff0c Boolean xff0c Undefined xff0c Null xff0c Symbol 引用类型 Object 但是有些时候我们需要的是把数组啊 xff0c 函数啊 xf
  • javaScript 运行时环境

    js的执行阶段 网页的线程 JS引擎线程 xff1a 也称为JS内核 xff0c 负责解析执行Javascript脚本程序的主线程 xff08 例如V8引擎 xff09 事件触发线程 xff1a 归属于浏览器内核进程 xff0c 不受JS引
  • 如何用策略模式,优化你代码里的的if-else?

    最近有一个学妹在跟我沟通如何有效的去避免代码中一长串的if else判断或者switch条件判断 xff1f 针对更多的回答就是合理的去使用设计来规避这个问题 在设计模式中 xff0c 可以使用工厂模式或者策略模式来处理这类问题 xff0c
  • Vue组件生命周期执行顺序

    通过学习他人的博客学习到的知识点 xff0c 小白我 xff0c 顺便总结下 xff0c 引出问题 需求 xff1a 父组件刚更新完 xff0c 子组件要立马获取到父组件中传过来的值 created xff1a 在实例创建完成后被立即调用
  • 前端面试题---DOM测试36

    得分 这个题目7分我是得了4分 解析 第一问 var textarea 61 document querySelector 39 textarea 39 第二问 1 对象添加 textarea rows 61 5 2 元素添加 textar
  • 前端小测----CSS基础测试11

    得分 这个题目8分我得了5分 分析 关于HTML语义 xff1a article用在非常大段的完整的描述内容上 header是表示非常完整的整页的头部 xff0c 不是具体某一两个标题头 对于一个文字列表的标题 xff0c 级别h3 h6之
  • webpack对CSS使用alias相对路径

    问题来源 由于对页面的路由需要一些修改 xff0c 要对几乎全部的 vue文件添加一个父文件 xff0c 然后改路由 xff0c 但是问题来了 xff0c 没一个页面的文件 xff0c 资源路径都要改 xff0c import还好可以用al
  • Base64的学习

    来源 再一次看比如的代码的时候发现别人的图标是一串很长的字符串 xff0c 而不是路径引用 xff0c 从而开启了我对Base64的学习 解决 原生的atob和btoa方法进行Base64的编码 atob xff1a 解码 从a base6
  • localStorage和sessionStorage区别和使用

    一 什么是localStorage 在HTML5中 xff0c 新加入了一个localStorage特性 xff0c 这个特性主要是用来作为本地存储来使用的 xff0c 解决了cookie存储空间不足的问题 cookie中每条cookie的
  • 前端小测----DOM测试38

    得分 我得了2分 xff0c 难受 xff0c 明明感觉是3分的 哈哈 分析 其实这个题目就是对伪类进行了一定考察 xff0c 我太菜了 xff0c 呜呜呜 第一问 xff1a 获取所有匹配required必选的单选框元素 我的答案 var