问题标签 [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 - 如何通过getElementByClassName或querySelector在javascript中设置选择值下拉列表而不使用id
我正在尝试在 javascript 中设置选择值下拉列表。我有如下下拉列表:
首先我尝试了getElementByClassName。我在stackoverflow中搜索了很多答案并应用了,但它不再起作用了。下面的代码就是其中之一。代码抛出错误,如undefined options
. 我更改了选项而不是选项,但仍然无法正常工作。
我检查并应用了许多解决方案,如下面的解释: 通过类名设置元素的值,没有元素的 ID 如何使用 getElementsByClassName 确定所选下拉选项的值?
我还发现 queryselector 我尝试了以下不起作用的代码。
如何在没有 id 参数的 javascript 中设置选择值
拉加兹,
javascript - 根据值(姓名和姓氏)对 JavaScript 中的 2 个不同元素列表进行排序
我需要一些帮助。我有一个多维数组,其中包含一个长度为 2 ["name","surname"] 的子数组,它们都是第一个字母大写的字符串值。
请求是在窗口加载时显示数组的前 10 个元素。之后,我使用一个按钮,每次按下时加载 10 个以上的元素。此功能完美无缺。
我面临 2 个问题:-我有 2 个按钮,按姓名排序和按姓氏排序。你猜对了。如果按下“按名称排序”btn,则必须按名称对元素进行排序,如果按下“按姓氏排序”则相反。
以下功能运行良好。排序姓名和姓氏。问题是在对姓名进行排序时,姓氏应该跟随姓名到正确的位置。现在我可以对姓名和姓氏进行排序,结果是排序后有其他全名。
-第二个问题,如果我们修复第一个问题,如果我加载 10 个或更多元素(通过按“加载更多”btn),我将需要按 sort btn 对它们进行排序。我想我应该对初始数组进行排序,然后开始从排序列表中取出项目。但是如何使用 ["Name","Surname"] 的子数组对数组进行排序?先感谢您
angular - 类型“HTML 集合”必须有一个在指令中返回迭代器的“[Symbol.iterator]()”方法
我在指令中有一张显示错误代码的地图TS2488 Type 'HTML Collection' must have a '[Symbol.iterator]()' method that returns an iterator
。
我的地图:
我如何最好地处理这个问题?有什么建议给我吗?
javascript - forEach 在比较选项值和返回父 id 时返回 undefined
所以我想抓取所有<select>
元素并抓取“国家”下拉菜单的 ID。
我有以下内容,将其推<selects>
入 HTMLcollection 然后比较第一个选项,通常是“阿富汗”。如果为 true,则返回 parentName.id 的值
这就是理论,但我一直不确定。任何见解将不胜感激?
javascript - 循环遍历 HTMLCollection 时包装元素会导致问题
我想将容器的每个项目包装在一个 div 中。当我遍历 HTMLCollection 时,某些元素会被多次访问,而另一些则被忽略
HTML
JS
直接通过 HTMLCollection 循环给出了这个奇怪的结果
当我将 HTMLCollection 转换为数组时问题得到解决
我不明白是什么导致了这种行为
javascript - 当 HTML 集合应该是字符串时,它会通过 PHP 解析为 JavaScript
例如,我有一个用于创建字符串值资源的数据库
|拳击手|1|
|衬衫|2|
等然后我使用php用这个资源填充一个数组,例如
然后我通过 echo 和 .push() for 循环中的每个元素将数组解析为 JavaScript 数组
这个 JS 数组然后成为 JS 函数调用的参数。正如你在下面看到的。
问题是每个字符串元素(例如 Boxers、Shirts)都会被解析为 HTML 集合,而不仅仅是字符串。我想知道我能做些什么来避免这种行为?因为我只需要一个字符串元素的 JS 数组(根据示例为 4 个),仅此而已
javascript - 在 for-of 循环中使用 entries(),遍历 HTMLCollection
我知道在一个for-of
循环中,可以使用该Array.entries()
方法。正如概述的那样,这通常很好用 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/entries。
但是,如果我尝试执行以下操作:
我被告知:
我知道我可以使用一个很好的旧常规 for 循环......但是:
- 为什么它不起作用?
- 我是不是误会了什么?
- 我可以让它按照我想要的方式工作(除了使用常规的 for 循环)吗?
我最好的猜测是 anHTMLCollection
不是标准数组,因此没有这样的数字索引......
javascript - 在 getelementsbyclassname 中获取元素不起作用
在这里,我运行了以下代码,并使用了console.log()
结果的注释。
虽然具有该类名称的元素正在异步呈现,但我认为这不是问题,因为第一个console.log()
呈现预期结果。第二个没有。
javascript - 当父元素中存在元素时,HTMLCollection 显示长度 0
我正在使用苹果的 MapKit JS 将地图嵌入到网页中。我需要访问底层 HTML Shadow Dom 中的标记注释,我想为元素添加一个类名。使用浏览器开发工具,我可以“看到”shadow dom
我使用以下代码“遍历”shadow dom:
运行此命令时,控制台日志显示 mapAnnotations 的childElementCount确实为 2,并且节点显示在 childNodes 和 children 属性中。但是,当读取子节点或子节点时,它显示没有子节点,并且变量annotationMarkers中生成的 HTMLCollection有两个元素,但长度为 0。
我见过几个类似的问题,答案似乎是 DOM 没有完全加载,尽管在记录父节点时这确实显示了子元素。
所以我的问题分为两部分,父元素是否知道它有 2 个子元素,但这些元素实际上并没有在那时加载,并且
其次,有没有办法在 shadowDom 上执行类似的 $(document).ready 函数调用?从而确保 shadowDom 中的所有元素(或父 mapAnnotations 节点的所有子元素)都已加载?
我已经在 shadowRoot 元素上尝试了一个 ready 函数,并附加了一个 eventListener 来监听 DomContentLeaded 事件,但这根本不会触发。
更新 30/09/2020 @ 20:30
我在 JS 中放了一个 setTimeout,超时完成后子节点计数现在显示为 2。我需要找到一种方法来等待 shadowDom 完成并等待元素存在:/