如何在 getElementsByClassName 中获取当前元素

2023-11-24

考虑一个简单的 JS 事件

document.getElementsByClassName('test')[0].onclick=function(){
document.getElementsByClassName('test')[0].innerHTML = 'New Text';
}

我如何扩展此代码以使其通常适用于所有元素class="test"。我的意思是单击该元素并替换其内容。事实上,我们需要从单击事件中获取节点号(括号内提供)。

我试图通过不显眼的代码更好地理解 Javascript,而不是像 jQuery 这样的实用方法。


只需迭代它们:

var elements = document.getElementsByClassName('test');

for (var i = 0; i < elements.length; i++) {
    elements[i].addEventListener('click', (function(i) {
        return function() {
            this.innerHTML = 'New Text';
        };
    })(i), false);
}​

I used (function(i) { return function() { ... }; })(i)而不仅仅是function() { ... }因为如果你碰巧使用i在回调中,值ielements.length - 1当你打电话的时候。要修复它,您必须阴影i并使其本质上按价值传递。

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

如何在 getElementsByClassName 中获取当前元素 的相关文章

随机推荐

  • 创建未知数量的循环

    这是我要生成的简单代码 一组的所有可能组合 例子 1 2 3 展示 123 132 213 第231章 第312章 321 我想创建可变数量的 for 循环 让用户确定给定字符串的长度 有谁有想法吗 提前致谢 type TNumber 0
  • Web API 2.1 Windows 身份验证 CORS Firefox

    这是场景 我创建了一个 web api 项目和一个 mvc 项目 如下所示 http www asp net web api overview security enabling cross origin requests in web a
  • LINQWhere() 和 FirstOrDefault() 之间的逻辑差异

    我知道这听起来可能是重复的问题 比如this or this 但我想清楚地了解此查询中将发生的迭代次数 我的假设如下 假设我收藏了 1000 件物品 在Where 查询中 它迭代每个项目并将其添加到IEnumerable 即它总是需要 O
  • GCP API网关:无法使用路径参数

    我正在努力将路径参数从网关传递到实际端点 这是我的 Open API yaml swagger 2 0 info description Blah blah version 0 0 1 title SSAuth contact email
  • 类型库中的示例代码导致 TypeError: 'type' object is not subscriptable,为什么? [复制]

    这个问题在这里已经有答案了 考虑使用 Python 文档typing为什么下面的代码不起作用 gt gt gt Vector list float Traceback most recent call last File
  • PHP 中的 DNS 查找

    我的 Windows 服务器间歇性地失去查找 DNS 信息的能力 我正在尝试找出问题的根本原因 但同时我希望能够监视服务器是否可以执行查找 基本上 它应该尝试查找一些常见的主机名 如果查找成功则显示 成功 该站点运行 PHP 因此我希望监控
  • Firebase 事务返回 null 并完成且没有错误

    我有一个简单的事务 它应该返回存储在实时数据库中的子节点的计数并递增它 值得注意的是 此事务位于 firebase cloud onWrite 函数内部 问题是返回的数据为空 我知道当客户端数据过时时这是可能的 但是函数退出时没有错误并且提
  • 在调试模式下找不到此可执行文件的有效配置文件

    当我尝试在设备上调试我的应用程序时 出现此错误 我创建了开发配置文件 正如开发人员门户中提到的那样 我的开发设备已在配置文件中选择 并且我正在从 Target 的代码签名身份菜单中选择正确的配置文件 我多次重新创建了配置配置文件 还删除并重
  • Ajax队列骨干js

    我正在 Rails 3 2 2 上运行 Backbone js 0 9 2 我有一个用于添加成本行的页面 成本有 3 个文本字段 标题 描述和价格 我节省了模糊的每一项成本 model save 以非常短的间隔被多次调用 哪个问题一crea
  • Java:如何取消应用程序退出

    在我的一个程序中 我希望当用户尝试退出应用程序时出现一个对话框 然后用户必须选择保存程序的某些状态 而不是保存或取消退出操作 我写这篇文章是为了尝试先找到解决方案 然后再实施它 import javax swing import java
  • C++ 对类中未初始化的变量启用警告

    让我们有这个代码 include
  • 在 Laravel 5 中保存/更新用户配置文件

    我似乎无法将更新的配置文件保存到数据库中 在我的 edit blade php 中 Form model user method gt PATCH route gt profile update user gt company name f
  • 如何将 ShowCaseView v5 构建器与片段一起使用?

    我找到了旧版本的示例 但没有找到新构建器模式的示例 有谁知道如何做到这一点 Builder 构造函数只需要一个 Activitypublic Builder Activity activity so public View onCreate
  • 使用“LKJCorr”先验修改 PyMC3 中的 BPMF:使用“NUTS”的 PositiveDefiniteError

    我之前实现了原来的贝叶斯概率矩阵分解 BPMF 模型中pymc3 看我之前的问题供参考 数据源和问题设置 根据 twiecki 对该问题的回答 我使用以下方法实现了该模型的变体LKJCorr相关矩阵的先验和标准差的统一先验 在原始模型中 协
  • 如何更改 RotatingFileHandler 在 Python 中命名文件的方式?

    我想更改旋转文件处理程序命名文件的方式 例如 如果我使用 RotatingFileHandler 它会在日志文件达到特定文件大小时将其分离 命名为 日志文件名 扩展名编号 如下所示 filename log first log file f
  • 使用命名函数进行回调

    我在使用匿名函数进行 JavaScript 分析时遇到了一个主要问题 我总是有很多匿名函数 其中大多数是回调 这使得分析器的分析结果对我来说非常困难 最后我决定使用命名函数进行回调 如下所示 var f function callback
  • PHP 连接变量

    对你们来说可能是一个简单的问题 在谷歌上找不到它 我正在尝试连接两个变量名称 i 0 for i 0 i lt 5 i if array i gt 0 test i do something else test i do something
  • 检查单词的第一个字母是否是元音

    我正在尝试使用 python 编写一个函数来检查给定单词的第一个字母 例如 ball 是否是大写或小写的元音 例如 here is a variable containing a word my word Acrobat letters i
  • 将文件名作为列值插入数据框中

    我有几个txt文件 每个文件都有由逗号分隔的数据列 每个文件都有自己单独的文件名 到目前为止 我已使用以下代码将这些文件组合成一个大数据框架 files list files data2 lapply files read table he
  • 如何在 getElementsByClassName 中获取当前元素

    考虑一个简单的 JS 事件 document getElementsByClassName test 0 onclick function document getElementsByClassName test 0 innerHTML N