Javascript classList.remove 无法正常工作

2023-11-21

检查这个小提琴:JSFiddle

HTML:

<table class="myTable">
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class=" someStyle">1</span>/<span class="otherStyle">15</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class=" someStyle">2</span>/<span class="otherStyle">16</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class="">3</span>/<span class="">17</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class="otherStyle">4</span>/<span class=" someStyle">18</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class="otherStyle">5</span>/<span class=" someStyle">19</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class="">6</span>/<span class="">20</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class="">7</span>/<span class="">21</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class=" someStyle">8</span>/<span class="otherStyle">22</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class="">9</span>/<span class="">23</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class="otherStyle">10</span>/<span class=" someStyle">24</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class="otherStyle">11</span>/<span class=" someStyle">25</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class="otherStyle">12</span>/<span class=" someStyle">26</span>
    </td>
  </tr>
  <tr>
    <th>Some text</th>
    <td class="align">
      <span class=" someStyle">13</span>/<span class="otherStyle">27</span>
    </td>
    <th>Some text</th>
    <td class="align">
      <span class=" someStyle">14</span>/<span class="otherStyle">28</span>
    </td>
  </tr>
</table>

JavaScript:

var myTbl = document.getElementsByClassName("myTable")[0];

var tSomeStyleClasses = myTbl.getElementsByClassName("someStyle");
console.log(tSomeStyleClasses);
for (i=0;i<tSomeStyleClasses.length;i++) {
    console.log(tSomeStyleClasses[i].classList);
    //tSomeStyleClasses[i].classList.remove("someStyle");
}

var tOtherStyleClasses = myTbl.getElementsByClassName("otherStyle");
console.log(tOtherStyleClasses);
for (i=0;i<tOtherStyleClasses.length;i++) {
    console.log(tOtherStyleClasses[i].classList);
    //tOtherStyleClasses[i].classList.remove("otherStyle");
}

并检查控制台日志。 someStyle 和 otherStyle 各有 10 个条目。现在取消注释//tSomeStyleClasses[i].classList.remove("someStyle"); and //tOtherStyleClasses[i].classList.remove("otherStyle");并运行小提琴。再次检查控制台日志。应删除 2 x 10 个样式,但它只删除 5 个样式。 我想知道为什么?


返回值来自.getElementsByClassName() is a live节点列表。它的“实时”意味着当您更改列表中的元素时,列表本身会自动更新。因此,当你remove用于查找元素的类,列表会变得更短。因为您使用数字索引进行迭代,所以最终会跳过元素。

解决这个问题的一个好方法是使用一个简单的while循环并仅对列表的第一个元素进行操作,直到列表为空:

var tSomeStyleClasses = myTbl.getElementsByClassName("someStyle");

while (tSomeStyleClasses.length) {
    tSomeStyleClasses[0].classList.remove("someStyle");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript classList.remove 无法正常工作 的相关文章

  • 验证动态字段jquery

    下午好 我遇到了以下问题 我正在使用 jQuery 验证插件来验证我的表单 v1 13 0 客户端 工作得很好 但我无法解决的问题是 我有一个字段名称 product 它是一个数组 在这个阵列中我可能有一种或可能有 20 种产品 这是我的代
  • React Native 无法访问 Cloud Firestore 后端

    我之前使用的是 firebase 实时数据库 但现在想切换到 Cloud Firestore 但即使经过身份验证 也会收到以下错误 我目前正在使用 Android Simulator 尝试禁用我的实时数据库 但找不到解决方案 Firebas
  • 如何使用 Nextjs/React 将 JSON 对象导出到 Excel?

    我有一个检索 json 对象的端点 如下所示 data id 1 temaIndicador Indian codigo 001 observaciones Interactions Specialist tertiary Regional
  • jQuery 模板:使用 AND 运算符创建条件语句

    这有效
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • 如何跨多个 React Redux 组件使用 requestAnimationFrame 实现游戏循环?

    努力思考最好的解决办法 我可以使用递归调用requestAnimationFrame有一个游戏循环 export interface Props name string points number onIncrement gt void o
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 无法从 JQuery ajax 调用接收 JSON

    我已经确定来自服务器的 JSON 是有效的 手动进行 ajax 调用 但我真的很想使用 JQuery 我还使用 firebug 确定发送到服务器的 post URL 是正确的 但是 错误回调仍然被触发 解析错误 我还尝试了数据类型 文本 我
  • select2 验证 - 选择至少一个值

    我在用select2 http ivaynberg github io select2 and jQuery 验证 http jqueryvalidation org 插件 select2 的 HTML div class form gro
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • jQuery UI 对话框 - 关闭后无法打开

    我有一个问题jquery ui dialog box https jqueryui com dialog 问题是 当我关闭对话框然后单击触发它的链接时 除非刷新页面 否则它不会再次弹出 如何在不刷新实际页面的情况下回调对话框 下面是我的代码
  • 有序 JSON 对象

    我有一个 servlet 它与数据库通信 然后返回有序 按时间排序 对象的列表 在servlet部分 我有 access DB returns a list of User objects ordered ArrayList users M
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • 对三个对象使用“==”运算符

    这两种检查三个对象之间相等性的方法之间是否存在计算差异 我有两个变量 x and y 假设我这样做 gt gt gt x 5 gt gt gt y 5 gt gt gt x y 5 True 这与以下有什么不同 gt gt gt x 5 g
  • 如何克隆 JPA 实体

    我有一个 JPA 实体已保存在数据库中 我想要一份它的副本 具有不同的 ID 并修改了一些字段 做到这一点最简单的方法是什么 喜欢 设置它的 Id字段到null并且坚持下去会有效果吗 我是否必须为实体创建一个克隆方法 复制除 Id 还有其他
  • 在javascript中计算单词并将其推入一个对象中

    我想实现一个 javascript 程序 计算一个单词并返回该单词及其出现的次数 例如 hello 2 hello 1 world 1 toString 1 下面是我的代码 但我只得到总字数 function words str app r
  • 如何在express.js中抛出404错误?

    在 app js 中 我有 catch 404 and forward to error handler app use function req res next var err new Error Not Found err statu
  • 在运行时将图像添加到 Crystal Report

    我想在运行时将图像添加到水晶报告中 我目前正在使用第二个数据表来执行此操作 其中仅包含一个字节字段 然后在报告上包含一个 blob 字段 然而 这感觉就像一个黑客 如果第一个主表中没有数据 那么由于某种原因图像不会显示 是否可以使用代码或其
  • Web应用程序后台进程,新手设计问题

    经过多年的桌面应用程序开发 我正在构建我的第一个 Web 应用程序 我正在使用 Django Python 但也许这是一个完全通用的问题 我不确定 所以请注意 这可能是一个超级新手问题 我的一个用户进程涉及服务器中的繁重处理 即用户输入一些
  • WPF TreeView 双击后恢复焦点

    我有一个带有 XAML 的 WPF TreeView 如下所示
  • 错误:缺少分隔符

    我运行时遇到以下错误make Makefile 168 missing separator Stop 是什么原因造成的 如中所示在线手册 该错误的最常见原因是行在以下情况下缩进空格 make需要制表符 Correct target tcmd
  • 在 Windows 通用应用程序中检测当前设备

    我正在尝试发布的 VS 2013 Update 2 并构建一个示例通用应用程序 我创建了一个用户控件 并在两个 MainPages 上添加了 GridView 在 Windows Phone 和 Windows 8 上 当应用程序在 Win
  • TypeScript 类装饰器 - 添加类方法

    如何使用 TypeScript 和装饰器定义属性 例如我有这个类装饰器 function Entity
  • R 绘图悬停标签文本对齐

    我正在为 R 中的绘图中的散点图点添加自定义悬停文本 它似乎将文本左对齐 居中或右对齐 具体取决于文本框是否显示在图的右侧 中心或左侧点 分别 我希望文本始终左对齐 无论框的位置如何 我已经能够设置字体的样式 例如设置颜色和大小 但无法更改
  • 获取 NSDate 今天、昨天、本周、上周、本月、上个月...变量

    我想做的是让 NSDate 今天 昨天 本周 上周 本月 上个月变量准备好进行比较 以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代码中手动完成日期 2009 12 11
  • 在 SearchView 中限制 onQueryTextChange

    最好的 节流 方式是什么onQueryTextChange这样我的performSearch 方法每秒仅调用一次 而不是每次用户键入时调用 public boolean onQueryTextChange final String newT
  • 当设置 Perl 代码作为脚本或模块运行时,__PACKAGE__ 的原因是什么?

    In this 较早的 Stackoverflow 问题尤其是brian d foy 的 脚本如何成为模块 我已经阅读了如何使用以下技术设置代码 以便它可以作为脚本或模块运行 package SomeModule PACKAGE gt ru
  • Eigen 在小矩阵相乘方面很慢吗?

    我编写了一个函数 将 10x10 维的特征矩阵相乘 然后我写了一个简单的乘法函数CustomMultiply令人惊讶的是 这比 Eigen 的实现快了 2 倍 我尝试了几个不同的编译标志 例如 O2 和 O3 但没有什么区别 include
  • 有没有什么方法可以在 Windows 64 位上的 Postgresql 9.3 64 位或 32 位中成功安装 PLPython?

    running CREATE EXTENSION plpython3u给了我错误 The specified module could not be found即使文件位于正确的位置 阅读完网上的所有内容后 我尝试按照建议下载另一个 pyt
  • 托管 Linux 预览代理上的缓存 Docker 映像

    我们正在使用 VSTS 托管 Linux 预览代理在 VSTS 上构建 docker 映像 microsoft aspnetcore build 镜像用于构建 asp net core 应用程序 每次触发构建时 代理都会从注册表中提取 mi
  • 在data.table中有条件替换数据值的最快方法(速度比较)

    为什么第二种方法会因增加data table大小而变慢 library data table DF data table x rep c a b c each 40000000 y sample c 1 3 6 40000000 T v 1
  • ViewPager 在屏幕旋转时保留旧片段

    我在用ViewPager and FragmentStatePagerAdapter显示片段 最初添加了 2 个片段 Fragment1 和 Fragment2 在收到服务器响应后 将第 3 个片段 Fragment3 添加到第 2 个位置
  • Javascript classList.remove 无法正常工作

    检查这个小提琴 JSFiddle HTML table class myTable tr th Some text th td class align span class someStyle 1 span span class other