问题标签 [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.
javascript - 从 getElementsByClassName 迭代 HTMLCollection 时出现奇怪的行为
我写了一个函数来改变元素的类来改变它们的属性。由于某种原因,只有部分元素发生了变化。我花了几个小时才找到解决方案,但这对我来说似乎很奇怪。也许你可以给我解释一下。
这不起作用:
见 JSFiddle:只有第二个项目受到影响;只有每隔一个红色元素将颜色变为蓝色。
所以我将for
循环的最终表达式更改为不再增加i
:
这很好用!似乎push
被调用并且不需要增量。这是正常的吗?这与我见过的例子不同。
dom - DOM 中的 HTMLCollection 和 NodeList 有什么区别?
我尝试了我的 Google-fu,但我似乎找不到该问题的任何好的答案。请帮忙。
编辑:好的,所以我找到了这篇博文。所以它们来自不同的DOM级别,但除此之外它并没有说太多......
c# - 如何设置类的内部文本
我在我的网页中得到了这段代码:
我想知道如何访问此类并TestText
使用 C# 更改为其他字符串。
我正在尝试使用HtmlCollection
,但没有 InnerText 选项。
编辑:我不能更改上面的代码。
xml - xml 元素作为对象 HTMLCollection 返回
我有一个返回地图标记列表的 xml 文档。
我有一些 javascript 来阅读标记列表,它成功地将它们的属性作为变量返回,例如name
and theid
。
但是我无法让 javascript 返回元素标记的内容content
。代替文本内容,我收到了消息[object HTMLCollection]
。请问有人能帮我解决这个问题吗?
loops - 我可以更新 jQuery 对象集合吗?
我已经初始化了许多需要动画的元素,所以我只想初始化一次。我提前说这句话是为了阻止你回答重新定义它,因为我必须重新定义动画中间所有元素的所有事件。
我有一个有几十个 li 的 ul,但是当我分离其中一个 Li 时,下一个动画仍然发生在初始化时存在的整个元素集合上。不在当前收藏中。
所以我需要一些方法来“更新”jquery 对象(LI 的集合)以删除那些不再存在的对象。
有没有为此提供什么?
我不知道每个集合是否知道它是由什么组成的,甚至称它为“更新”,所以现在我将测试父级是否仍然相同并且元素不为空。
谢谢。
javascript - 通过 HTMLCollection 对象解析
我有一个返回的 xml
XML 文档
关于写代码
我现在得到 HTMLCollection Object 如何解析这个。我需要从中提取名字和姓氏。请指导
javascript - 动态更新 HTMLCollections 的优雅方式
今天,我在 Javascript 中发现了一些对我来说看起来像“奇怪行为”的东西。让我们假设以下最小示例:
HTML:
JS:
(小提琴:http: //jsfiddle.net/SkYJg/)
现在,在运行脚本时,出现错误:
TypeError:Node.removeChild 的参数 1 不是对象。
仔细一看,发现第一个被删除后spans[1]
是 null 。事实上,下面的代码
2
在第一次日志操作时产生,但1
在第二次。
现在,很清楚这里发生了什么:在第一个 ?span? 已从 DOM 中删除,它也不再是HTMLCollection
存储在内部的一部分spans
。
我一直认为HTMLCollection
-Object 包含对其包含的所有对象的引用。创建集合后,我没有在任何地方修改集合。所以我认为(但显然这是错误的)该集合的行为就像一个数组:引用一直保留在那里,直到我手动删除/修改它们。
我查看了MDN 的规范。而且,确实,它在顶部说:HTMLCollections in the HTML DOM are live; they are automatically updated when the underlying document is changed.
我能想到的防止这种情况的唯一方法是在对它进行任何操作之前循环遍历collectino,复制对数组的所有引用,然后使用数组访问它们。但这对我来说看起来非常笨重......有更好的解决方案吗?像某种使集合静态或不循环复制它的方法吗?
(当然,在最小的示例中,我可以只删除spans[0]
两次,但实际上并不是那么简单)。
[编辑]:在看到@Teemu 的回答后,我重复一遍:在我的真实代码中并不是那么简单(那个代码太复杂,无法在此处完全显示)。我向你保证,我真的需要随机访问该集合中的所有元素,无论是否删除。
javascript - 针对 NodeList 调用 Array.prototype.slice 的目的是什么?
我正在查找如何迭代 NodeLists 并且遇到了以下代码。
调用Array.prototype.slice
NodeList 的目的是什么?
javascript - 在 HTMLCollection 中设置项目的属性
跳到底部查看问题:
我正在使用从 htmlCollections 退回给我的地狱
和
现在,我一直认为 byClassName 和 TagName 是唯一返回 HTML 集合的,但由于某种原因,这段代码在第二行记录了一个 htmlCollection。不好
做完全相同的事情,我不知道为什么。
之前,我有最后两行,我得到了一个 HTMLCollection,它对只读没有帮助。
我有两个问题:
1) 为什么 getElementById 会返回一个 htmlCollection?
我已经检查了文档,没有其他 id="myId"
2) 如何在 HTML 集合的各个项目中设置属性以设置偏移函数的数据属性?
javascript - javascript HTMLCollection 访问
我做了一个网站,需要执行 javascript。我想从我的 HTML 菜单中获取子节点。
这是我的 HTML 结构的一部分:
所以,我想获得“活跃”元素。我做了以下代码:
问题来了:
我通过 Firebug 显示了控制台,它向我展示了
然后我尝试访问集合,SelectedElement[0]
但我得到“未定义”。
请告诉我如何获取活动元素的孩子。