JavaScript 访问 forEach 循环中的子元素

道格

尽管我以前使用过许多其他语言,但我才刚刚开始使用 JavaScript。我发现方向很痛苦,我很感激有关如何访问 forEach 循环(或 jQuery .each 循环)中的子元素的一些指导。在这个阶段,我并不真正关心解决方案是 JS 还是 jQuery,我只是想得到一些有用的东西。

假设我有一个使用 jQuery 找到的节点元素,现在我要对每一行进行一些处理,其中包括需要找到一个子元素,其 id 包含与相关父节点相关的索引:

$('.row').each((index, item) => {
    var name = item.getElementById(`#name-${index}`);
});

似乎使用 getElementById 选择元素应该很简单,但这会导致“item.getElementById 不是函数”错误。

我也试过 jQuery 方法:

var name = item.find('#name-0')

这会得到一个“item.find 不是函数”错误。

我不知道 item 是否应该在 {} 中 - 我不清楚什么时候需要大括号,什么时候不需要,但是如果我用大括号尝试它,我仍然会收到“.find is not a function”错误.

有人可以指出我做错了什么,或者甚至更好地指出我在记录的某个地方的正确方向。我所能找到的只是非常简单的例子。

编辑以包含最小的 HTML 示例:(并修改以修复丢失的 div 标签)

<div id="container" class="position-relative col-10>

    <div id="row-0" class="row position-relative">
        <div id="name-0" class="column col-4">User 1</div>
        <div id="score-0" class="column col-2">20</div>
    </div>

    <div id="row-1" class="row position-relative">
        <div id="name-1" class="column col-4">User 2</div>
        <div id="score-1" class="column col-2">10</div>
    </div>

    <div id="row-2" class="row position-relative">
        <div id="name-2" class="column col-4 ">User 3</div>
        <div id="score-2" class="column col-2">5</div>
    </div>

</div>
0石0

为什么 getElementById 对文档元素内的元素不起作用?

容器 ID 应该是唯一的,因此没有理由在另一个容器中按 ID 查找对象。这就是为什么您只需要document.getElementById通过其 ID 访问任何元素,而当您按类或标签名称搜索时,您可能只想在特定容器内搜索,这就是为什么您可以这样做的原因x.getElementsByClassName

所以getElementByIditem.

推荐使用一个普通的document.getElementByIddocument.querySelector或者Jquery像这样一个额外的选择器:

$('.row').each((index, item) => {

  // getElementById
  var name = document.getElementById(`name-${index}`);
  console.log(name.textContent);
  
  // Jquery
  var name2 = $(`#name-${index}`)[0];
  console.log(name2.textContent);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='row'>
  <em id='name-0'>Name 0</em>
  <em id='name-1'>Name 1</em>
</div>

注意上面只是一个例子,因为OP还没有添加示例html,我创建了一个简单的例子。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在foreach循环中访问数组的特定元素

无法在forEach循环JavaScript外访问变量

在 php foreach 循环中访问 xml 节点

SwiftUI访问在ForEach循环中创建的视图

在foreach循环中访问对象的$ key

foreach循环中的javascript变量

如何使用 javaScript 从 JSTL ForEach 标记访问特定元素?

是否可以从JSTL forEach循环中的列表访问特定的元素/对象?

通过onclick(for循环)访问Javascript数组中的子元素

如何从JavaScript中的foreach循环中突围

在foreach循环中动态创建JavaScript对象

在javascript foreach循环中获取索引

让foreach在javascript循环中一一显示?

在 forEach 循环中动态创建变量 - Javascript

卡在 forEach 循环中的 javascript 承诺

如何在刀片模板的foreach循环中访问laravel集合?

Typescript如何在foreach循环中访问组件变量?

从vue.js中的foreach循环中访问变量

如何在forEach循环中访问动态列表项?

在 forEach 循环中使用 Javascript FileReader 来附加元素

addEventListener 只在 forEach 循环中的任何一个元素上使用一次 javascript

在foreach循环外访问变量

如何从 Javascript 中的 foreach 访问类变量

JavaScript forEach 循环 - 特定元素的问题

C# 使用 for 循环而不是 foreach 从 List<> 访问对象的元素

如何使用javascript和jade中的foreach循环访问对象的json数组

在foreach循环中读取xml子节点

比较 foreach 循环中的子数组

在 foreach 循环中取消设置数组元素