问题标签 [htmlcollection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
265 浏览

javascript - HTMLCollection 索引更改未反映在 .append() 之后的变量中

我有一堆div以轮播方式设置的 s。单击“下一个”或“上一个”按钮时,使用 JQuery I.append().prepend()a到堆栈的顶部或底部。div顶部/可见是对应于类似命名属性div的“活动” 。当单击下一个/上一个按钮后 a 变为“活动”时,我希望我的 Javascript从对应的属性值中提取属性值,以便我可以在程序的其他地方使用它。div<iframe>iddivsrc<iframe>

我遇到的问题是,当我单击上一个或下一个按钮时,divs 完美地重新排序,但相应的变量不反映新的 "active" div。例如,应该在单击按钮后activeAlbumID保留。discovery-soundsspace-sounds

这是我的<html>

这是Javascript:

因此,例如,当我单击“上一个”按钮时,discovery-sounds被推到堆栈的底部和space-sounds顶部并变得可见,这很好用:

打印albums到控制台会生成更新且正确的堆栈索引,但后面的所有变量都会生成原始的“活动”值:

0 投票
1 回答
568 浏览

javascript - 如何为 html 集合中的每个元素添加事件侦听器?

我正在设法将每个日志记录inputs[i]到控制台。inputs[i]存在。但是我得到了 Uncaught TypeError: Cannot read property 'addEventListener' of undefined

如果我可以将每个日志都记录到控制台,这怎么定义?有人可以解释一下我5岁吗?

0 投票
6 回答
22776 浏览

javascript - 打字稿,'NodeListOf' 不是数组类型或字符串类型

将我的 JS 转换为 TS 严格模式。

以下语法对我来说看起来不错,但 TS 在for循环中抱怨allSubMenus

我错过了什么?

0 投票
1 回答
231 浏览

javascript - 无法在 Js 函数中将 HTML Collection 作为参数传递?

我一直在关注 w3schools 上的幻灯片教程来学习如何创建自己的幻灯片。

这是教程代码的链接。然而,我指的是这段代码。

我想为一个页面制作多个幻灯片,所以我做了它,所以这部分代码将采用一个参数,然后我可以插入我的图像列表。但是当我将代码更改为此...

完整代码可通过此链接获得。

它给了我长度未定义的错误属性,即使 .length 可以用于 HTML 集合。

为什么这个函数似乎不能接受 HTML 集合作为参数?

编辑:在查看反馈并注意到我让人们更难帮助我之后,我为我的问题创建了一个代码框链接。我将解决方案作为评论包含在内,因此人们可以看到前后。我还包括了上面的整个功能。

感谢您的反馈,这样我就可以更清楚地提出问题,并对问题感到抱歉!

0 投票
1 回答
276 浏览

javascript - JavaScript 如何遍历 HTMLcollection 中的每个当前和未来元素?

HTML DOM 中的 HTMLCollection 是活动的;它会在基础文档更改时自动更新。

我正在尝试为经常添加元素的网站编写一个简单的脚本,该脚本根据标准重新着色这些元素。

现在,出于性能原因,我不想让循环持续运行并检查新元素。

我将如何使用实时 HTMLcollectio n并在其中的每个元素上执行一个函数,即使是添加的新元素?

如果我能做到这一点,它应该会产生一个永远不会完成的脚本,并重新着色所有新元素。

任何帮助表示赞赏!

0 投票
1 回答
69 浏览

javascript - 数组长度在清空后不会增加,并且无法在 HTMLCollection 上添加鼠标事件

我想用 JavaScript 和 HTML 制作自己的杂货/任务列表。我可以毫无问题地将东西添加到列表中,但我有两个问题:

  1. 如果我将项目添加到列表中,然后按“清除”按钮擦除列表中的所有内容,它就可以工作。但是,当我在清除后将内容添加回列表时,我的控制台会通知我我的数组仍然是空的,尽管屏幕上显示了新任务。
  2. 我的第二个问题更大。看,我所有的任务都在我认为的数组中,但实际上是一个 HTML 集合。所以,当我尝试设置一个onclick事件时,它就不会运行。我不知道为什么,我尝试使用以下问题:Removing HTMLCollection elements from the DOM 。它没有用。我尝试使用itemHTMLCollection item() 方法。没用。我的最后一次尝试是使用for(let thing of...,但仍然没有结果。

这是我的代码:

0 投票
2 回答
95 浏览

javascript - 为什么 JavaScript 不将类似数组的对象转换为数组?

在学习 DOM 操作时,我注意到诸如 getElementByTagName 或 querySelectorAll 之类的 Document 方法返回 HTMLCollection 或 NodeList 对象,无论它们看起来多么像数组,如果我们希望这些集合具有非常有用的数组方法。我想知道为什么会这样。JS没有自动将这些集合转换为数组有什么特别的原因吗?

编辑:我注意到NodeList在所有主要浏览器中都有forEach() 。

0 投票
1 回答
476 浏览

javascript - Javascript search for string in selected elements and hide the html tag that contains that string

I wrote a simple javascript code to find whether the string exists in innerHtml in selected elements, now I would like to hide element that contains that string but I'm not sure how to get the tag id or something to hide specified element. Here's my code.

0 投票
0 回答
60 浏览

javascript - 如何将元素 iframe 放入 iframe?

如何将元素 iframe 放入 iframe?JS HTMLColletiion 获取 0 元素返回未定义?

控制台 html

0 投票
1 回答
69 浏览

javascript - 存储实时 htmlCollection 与迭代项目 ID 数组(和树遍历)的成本

节目活动

选择区域包含动态加载的项目(最多 100 个)。单击一个项目,将其副本添加到存储箱。单击存储框中项目上的“x”按钮,删除该项目并从选择区域取消选择它。

哪个更好/更有效?

选项 1:
当项目加载到选择区域时,将项目作为实时 HTMLCollection 存储在变量中。单击 X 时,迭代此实时集合并在找到时取消选择它。
问题 1:将实时集合存储为变量是否成本高昂?
问题 2:当迭代这个实时集合时,它实际上是迭代 DOM 还是只迭代存储的集合?

选项 2:
当项目加载到选择区域时,仅将项目 ID 存储在数组中。单击 X 时,迭代此数组,当找到 ID 时,执行将遍历 DOM 的“getElementById”,然后取消选择它。