首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript重构技巧 — 数组,名和条件

DOM 元素中使用 classList 属性 检查 DOM 元素中是否存在并操作多个最简单方法是使用classList属性。...我们只是获得DOM元素对象classList属性,然后调用add通过将带有字符串传递到add方法中来添加。 现在,渲染DOM元素具有foo,bar和baz。...('baz'); p.classList.remove('baz'); 要检查 DOM 元素对象中是否存在名,可以使用contains方法。...hasBaz = p.classList.contains('baz'); 上面判断 p 元素是否包含 baz ,因为 p 没有包含 baz,所以返回 false。...要操作多个名,我们应该使用作为DOM元素对象一部分classList属性。通过这种方式,我们可以添加、删除和切换,而不需要操作字符串并自己将其设置为className属性。

70920
您找到你想要的搜索结果了吗?
是的
没有找到

记好这 24 个 ES6 方法,用来解决实际开发 JS 问题

本文主要介绍 24 中 es6 方法,这些方法都挺实用,本本请记好,时不时翻出来看看。 1.如何隐藏所有指定元素 ? 2.如何检查元素是否具有指定?...页面DOM每个节点上都有一个classList对象,程序员可以使用里面的方法新增、删除、修改节点上CSS使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS。 ?...6.如何检查父元素是否包含子元素? ? 7.如何检查指定元素在视口中是否可见? ? 8.如何获取元素中所有图像? ? 9.如何确定设备是移动设备还是台式机/笔记本电脑? ?...11.如何创建一个包含当前URL参数对象? ? 12.如何将一组表单元素转化为对象? ? 13.如何从对象检索给定选择器指示一组属性? ? 14.如何在等待指定时间后调用提供函数? ?...15.如何在给定元素上触发特定事件且能选择地传递自定义数据? ? 自定义事件函数有 Event、CustomEvent 和 dispatchEvent ?

1.6K10

使用 HTML、CSS、JavaScript 创建一个简单井字游戏

为了包装所有东西,我将使用一个主标签,并对其应用一个background。在main包装器内部,我们将有五个部分。 第一部分将只包含我们标题h1。 第二部分将显示当前轮到谁。...在显示中,我们有一个包含X或O取决于当前用户跨度。我们将应用于此跨度以对文本进行着色。 第三部分是拿着游戏板部分。它有一个container,因此我们可以正确放置瓷砖。...它将接收结束游戏类型并innerText根据结果更新播音员 DOM 节点 。在最后一行中,我们必须删除隐藏,因为播音员默认是隐藏,直到游戏结束。...首先我们需要检查是否是一个有效动作,我们还将检查游戏当前是否处于活动状态。如果两者都为真,我们innerText用当前玩家符号更新瓷砖 ,添加相应并更新板阵列。...我们必须做最后一件事是遍历图块并将innerText 设置回空字符串,并从图块中删除任何特定于玩家

1.9K21

【Java 进阶篇】HTML DOM样式控制详解

如何使用内联样式 在HTML中,您可以使用内联样式来为特定元素指定样式。内联样式是指在HTML元素style属性中直接定义样式。以下是一个简单示例: <!...操作名 除了内联样式,您还可以使用名来为元素定义样式。名通常在CSS中定义,并可以应用到多个元素上。在HTML DOM中,您可以使用JavaScript来添加、删除和切换元素名。...接着,我们使用JavaScriptclassList属性来添加和删除这个名。 示例: 切换名 下面是如何通过JavaScript来切换元素名: <!...这个函数使用classListtoggle方法来切换段落名。 修改样式属性 在HTML DOM中,您还可以通过JavaScript直接访问和修改元素样式属性。...点击按钮将触发changeBackgroundColor函数,该函数使用style属性来修改元素背景颜色。 处理伪和伪元素 在CSS中,伪和伪元素用于选择元素特定状态或位置。

14210

JS魔法堂:那些困扰你DOM集合类型

DOM树有新元素加入,该类型对象也会将新元素包含进来;     4. 可通过下标数字类型索引获取集合中指定位置元素;     5....用过classList都知道它大大提高了我们设置css效率,但IE10以下却不支持,polyfill可以帮我们一把。...} toggle({String} class) {Boolean} contains({String} class); //检查是否有指定 item({Number} 索引); //通过索引获取指定位置...'remove' : 'add'](cls); }, contains: function(cls){ // 省略检查cls值是否有效代码 return...[i]; } } 由于当原生add、remove、contains和toggle方法入参值包含空格时,会抛出InvalidCharacterError,因此在polyfill时也要做相应检查和抛出异常

2K90

第88天:HTML5中使用classList操作css

在HTML5 API里,页面DOM每个节点上都有一个classList对象,程序员可以使用里面的方法新增、删除、修改节点上CSS。...使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS。...1、新增CSS 使用add方法,你可以往页面元素是新增一个或多个css: myDiv.classList.add('myCssClass');<span style="font-family:SimSun...4、<em>检查</em><em>是否</em>含有某个CSS<em>类</em> myDiv.<em>classList</em>.contains('myCssClass'); //returns true or false 目前所有的现代浏览器(火狐浏览器,谷歌浏览器等...)都支持这个<em>classList</em><em>类</em>,所以,相信新型<em>的</em>javaScript<em>类</em>库里都会<em>使用</em><em>classList</em><em>类</em>来操作页面CSS<em>类</em>,而不需像以前一样去分析元素节点<em>的</em>class属性!

65920

整理常见 DOM 操作

整理常见 DOM 操作 ⭐️ 更多前端技术和知识点,搜索订阅号 JS 菌 订阅 框架用多了,你还记得那些操作 DOM 纯 JS 语法吗?看看这篇文章,来回顾一下~ ?...操作 className addClass 给元素增加 class,使用 classList 属性,该属性返回是 DOMTokenList 对象,对象有一个 add 方法可添加 class,如果没有这个属性那么使用...el.classList.add(className) : el.className += ` ${className}` } hasClass 检查是否存在某个 class function hasClass...(el.firstChild) && remove(el) } hasChild 检查元素下是否包含某元素,可传入 selector 选择器字符串或 node 节点 function hasChild(...== child && el.contains(child) } } hasChildNodes 检查元素是否有子元素 parentNode.hasChildNodes removeChild

1.1K20

jQuery选择器 和用jQuery 实现 Tab 切换效果(1)

二、选择器用法 1、.eq(index),.get([index]) 对于一个特定结果集,我们想获取到指定indexjQuery对象 $('div').eq(3); //获取结果集中第四个jQuery...对象 通过数组下标的获取方式或者get方法获取指定indexDOM对象,也就是我们说jQuery对象转DOM对象 $('div')[2] //获取第三个dom对象 $('div').get(2)...DOM元素后代元素 $('li').has('span') ?...11、.is(selector), is(function(index)), is(dom/jqObj) 判断当前匹配元素集合中元素,是否为一个选择器,DOM元素,或者jQuery对象,如果这些元素至少一个匹配给定参数...二、实现tab切换 使用 jQuery 实现 Tab 切换效果 使用 原生 js 实现 Tab 切换效果 document.querySelectorAll('.mod-tab .tab').forEach

3.7K20

jQuery VS JavaScript原生API

在jQuery温柔乡里,是否还能记得原生她javascript原生?如果仅为使用个选择器($)或者类似的东西,是否真的有必要加载jQuery?故此了解下JS常用原生写法还是蛮有必要。...[update-2015-12-07]有看到抛弃jQuery,拥抱原生JavaScript一文中提到,jQuery 代表着传统DOM 为中心开发模式,但现在复杂页面开发流行是以 React 为代表以数据.../状态为中心开发模式; React、Angular、Vue 等框架流行,直接操作 DOM 不再是好模式,jQuery 使用场景大大减少。...('class'); document.querySelector('.el').classList.remove('class'); document.querySelector('.el').classList.toggle...('class'); 判断是否包含 // jQuery $('.el').hasClass('className'); $('.el').has('.className'); //也可以用来 判断是否包含某个元素

1.6K60

JavaScript入门笔记

DOM DOM(文档对象模型) 是浏览器对 html 文件描述方式, DOM API是浏览器提供给JavaScript操作html页面内元素方式。...获得特定属性值 var userValue = user.getAttribute('value') 设置特定属性值 user.setAttribute('value', '新用户名') 查询属性是否存在...log(user.hasAttributes()) // 查看元素是否有属性 log(user.hasAttribute('value')) // 查看元素是否特定属性 删除某个属性..., 和push一样 s.add(1) s.add(2) // has方法检查元素是否在set中 s.has(1) // true s.has(3) // false // size属性相当于length..., 用var声明变量作用域限制在函数体内 为了修补js这一严重设计缺陷, ECMA在后续规范中推出了strict模式, 在strict模式下运行js代码, 强制通过var声明变量,未用var声明变量就使用

68320

Javascript修改元素class几种实践

为元素添加额外一个class 要在不删除/影响现有值情况下向元素添加,请添加空格和新名,如下所示: document.getElementById("MyElement").className...+= " MyClass"; 从元素中删除class 要将单个移除到元素而不影响其他可能,需要使用正则表达式替换: document.getElementById("MyElement")....\S)/g , '' ) 检查元素是否存在某个class 上面用于删除相同正则表达式也可用于检查特定是否存在: if ( document.getElementById("MyElement"...虽然有些人认为添加一个大约50 KB框架来简单地改变一个是不合适,如果你正在做大量JavaScript工作,或者任何可能有不寻常跨浏览器行为东西,那么插件还是非常值得一试。...(非常粗略地说,library 是为特定任务设计一组工具,而framework 通常包含多个库并执行一整套职责。)

7.9K10

webapi(一)初识DOM&定时器

初识 作用 使用js去操作html和浏览器 分类 DOM:文档对象模型 BOM:浏览器对象模型 DOM(文档对象模型) 用来呈现 ,以及与任意 HTML 或 XML文档交互 作用: 实现网页特效 实现用户交互...根据CSS选择器来获取DOM对象(⭐) 1.选择单个元素 document.querySelector('选择器') //选择器一定是用引号引起来 匹配是使用深度优先先序遍历,从文档标记中第一个元素开始... 有覆盖问题:是用className赋值会覆盖以前名 2. classList 属性 语法: // 获取到当前DOM元素他一个 集合列表 元素.classList // 添加一个...元素.classList.add('名') // 删除一个 元素.classList.remove('名') // 切换一个 元素.classList.toggle('名') // 检测一个元素是否有某个名...有就是true, 没有就是false 元素.classList.contains('名') classList 是追加和删除不影响以前名 注意:add remove toggle contains

51320

js 事件笔记

用户在浏览器任何一个操作都会去触发一个事件,JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。...在触发DOM某个事件时候会产生一个事件对象event,这个对象包含着所有与事件有关信息,包括产生事件元素、事件类型等相关信息。...2、event常见属性 event对象包含与创建它特定事件有关属性和方法,触发事件类型不同,可用属性和方法也不同,但是所有事件都会包含 ?...2、举个栗子 需求:给container里面所有box都绑定点击事件,点击时输出box值 2.1方式一:foreach 原理:选中.box所有元素,得到一个数组对象,遍历这个数组对象,给.box元素一一绑...,注意使用函数节流 DOMContentLoaded DOM 结构解析完成,不用等图片解析 load 页面所有资源(图片css 等)加载完成触发,触发时间比较晚 mouseover 鼠标放上去触发,注意进入元素子元素会重复触发

11K21

WebAPIs学习笔记

//即:padding-left-->paddingLeft 修改标签名 元素.clssName='新名' //注:直接使用 className 赋值会覆盖以前名 //保留可写 元素.clssName...='旧名 新名' 通过clssList操作css名 //增加一个名 元素.classList.add('名') //删除一个 元素.classList.remove('名') //切换一个...,存在就删除,不存在就增加 元素.classList.toggle('名') 修改表单属性 作用:表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框 获取:DOM对象...(事件类型, 事件处理函数, 是否使用捕获) 后面注册事件不会覆盖前面注册事件(同一个事件) 可以通过第三个参数去确定是在冒泡或者捕获阶段执行 必须使用removeEventListener(事件类型...: /^[a-z0-9_-]{3,16}$/ 过滤掉页面内容中一些敏感词(替换),或从字符串中获取我们想要特定部分(提取)等 。

1K30
领券