gpt4 book ai didi

javascript - 无法将类添加到元素

转载 作者:行者123 更新时间:2023-11-30 15:48:51 24 4
gpt4 key购买 nike

我遇到了无法解释的问题。我有一个简单的 <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 搜索您喜欢的元素。

关于javascript - 无法将类添加到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com