Javascript 更改元素的类

标签 javascript jquery html dom

这是我现在正在处理的网页上经过大量删减的源代码。

<!--// GRID ENTRY //-->
    <li class="entry" id="sjDDulC8wt">
        <div class="entry_actions">
            <ul class="entry_actions">
                <li class='have_it'>
<a href='javascript: haveItem("name", "id", "none")'  target='_self' title='Have It' class='have_it'>%</a></li>
            </ul>
        </div>
    </li>

haveItem()内函数我正在尝试更改 <a> 的类将元素从“have_it”更改为“have_it selected”以更改元素的外观。之所以使用 id 是因为我的页面上有几十个这样的元素。我当前使用的 JavaScript 是:

var targetA = document.getElementbyID(sjDDulC8wt).getElementsbyTitle("Have_it"); 
targetA.removeClass("have_it").addClass("have_it selected");

当我单击链接时,haveItem()函数运行,但它不会更改类。如何更改我的脚本以便单击链接将更改类?

最佳答案

我假设您正在使用 jQuery,因为您正在使用 removeClass()addClass。否则,我建议您链接到 jQuery这样下面的代码就可以工作,或者只使用 JavaScript。

var targetA = $('#sjDDulC8wt .have_it');
targetA.addClass('selected');

以下是您的代码中可以改进的一些内容,供将来引用:

  1. getElementById() 接受您想要以字符串形式检索的元素的 ID。基本上,您应该将 ID 包装在 '"
  2. 请小心放置空格和下划线的位置。它们不是同一件事。您的列表项的标题为 Have It,而您的 JavaScript 的标题为 Have_it
  3. 大小写很重要。 Have_ItHave_it 不同。当您尝试通过 ID 获取元素时请小心。
  4. 一个包含空格的类实际上是多个类。 have_it selected 实际上同时具有 have_it 类和 selected 类。因此,无需删除 have_it,然后添加 have_it selected - 您可以直接添加 selected 类。
  5. JavaScript 中当前不存在函数 getElementbyTitle()。另外,再次注意大小写。通常,函数中每个单词的第一个字母都是大写的。因此,如果它确实存在,它将被调用 getElementByTitle() (注意 B 而不是 b)。

关于Javascript 更改元素的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11234971/

相关文章:

javascript - 模态关闭时的基金会火灾事件?

html - 背景颜色未填满整个 div

html - "X-UA-Compatible"内容= "IE=9; IE=8; IE=7; IE=EDGE"

javascript - 采用显示 URL 并添加其他字符串的书签

php - 如何从视频中提取图像以将其用作缩略图

javascript - 如何检查是否设置了另一个对象内的对象内的变量(js)?

jQuery val 在 Chrome 中无法正常工作

php - 将输入字段焦点设置为开始输入

javascript - AngularJs 在模式中注入(inject)模板 html

javascript - 使用变量禁用悬停功能