不能为元素添加class
Can't add class to element
我有一个无法解释的问题。我有一个简单的<svg>
元素与"正常"类-> "small_circle_svg_menu"
。我想给这个元素添加一个类"animated"
。我的意思是,这是最简单的事情,我做不好,但可以做一些更复杂的事情。
第二种方法是最简单的方法(您将看到)。
这是第一种方式:
此函数通常将class添加到任何其他元素。我还将document.getElementsByClassName('small_circle_svg_menu')[0]
记录到控制台,看看我是否可能记录了错误的元素。(但事实并非如此,我正在记录正确的元素)。
function hasClass(ele,cls) {
return ele.className.match(new RegExp('(''s|^)'+cls+'(''s|$)'));
}
function addClass(ele,cls) {
if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}
addClass(document.getElementsByClassName('small_circle_svg_menu')[0],"animated")
第二种方式
document.getElementsByClassName('small_circle_svg_menu')[0].className += "animated"
元素在HTML中定位在<header>
,所以我将展示整个<header>
。
<header >
<div class=" menu_circle circles-div ">
<div class="icn__wrap menu " id="menu">
<i class="icn__hamburger state_1" id="icn__hamburger-1" ></i>
<i class="icn__hamburger state_1" id="icn__hamburger-2" ></i>
<i class="icn__hamburger state_1" id="icn__hamburger-3" ></i>
<svg class="small_circle_svg_menu " version="1.1" xmlns="http://www.w3.org/2000/svg" width="58px" height="58px" viewBox="0 0 16 16" preserveAspectRatio="none" >
<circle cx="8" cy="8" r="6.215" transform="rotate(90 8 8)" stroke="white" class="small-circle" id="menu_circle"></circle>
</svg>
</div>
</div>
<img id="logo" src="images/nolo.png" alt="nole.logo" onclick="fullpage.moveTo(1)"/>
<div class="page-title background_LG"id="prvinatpis" >Novak Djokovic</div>
<div class="page-title background_LG"id="drugastrananatpis" >News </div>
<div class="page-title background_LG"id="trecastrananatpis" >Tour </div>
<div class="page-title background_LG"id="cetvrtastrananatpis" >Story </div>
<div class="page-title background_LG"id="petastrananatpis" >Gallery </div>
</header>
我还想提一下,到目前为止,我在控制台没有得到任何错误。第一次也是唯一一次我得到错误是当使用第一种方式。然后我得到这个错误。
TypeError: ele.className.match is not a function.
(In 'ele.className.match(new RegExp('(''s|^)'+cls+'(''s|$)'))', 'ele.className.match' is undefined)
在你的元素中使用classList.add()
方法。
var element = document.getElementById("my-class");
element.classList.add("class-name");
用document.querySelectorAll
搜索你喜欢的元素。
相关文章:
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 在所选元素的父元素上添加“ng-class”
- 使用 Jquery 将 Span with Class 添加到输入标记中
- 如果X与Y的href=匹配,则添加class'活动'-jQuery
- 元素必须单击两次才能添加Class(自定义指令)
- 如何将Class添加到ul li
- 如何在AngularJS中使用ng-class仅在特定页面上向元素添加类
- 用于将 Class 添加到链接中指定的元素的动态代码
- 如何根据jQuery中的滚动位置将Class()添加到两个不同导航的活动链接中
- CoffeeScript:如何添加Class,除非
- 如何在AngularJS上添加不同元素的Class和removeClass
- 无法使用Javascript添加Class
- 当幻灯片处于活动状态时,JQuery将Class添加到缩略图中
- 将Class添加到具有任意2个类的所有表行,并将另一个样式添加到具有任何3个类的全部表行
- 如何在滚动时将Class添加到节中,循环问题
- :包含('2 minutes').addClass还将class添加到12分钟'
- 如果文本在jQuery中为عربي(阿拉伯语),则将class添加到text的父类
- 将Class添加到UL元素的ALL Child
- 尝试在滚动到一个元素时将 Class 添加到另一个元素
- Ng-click if为true,使用ng-class添加一个类