使用 Elm.Browser.Dom 按类名获取元素

Posted

技术标签:

【中文标题】使用 Elm.Browser.Dom 按类名获取元素【英文标题】:Get elements by class name with Elm.Browser.Dom 【发布时间】:2020-10-30 07:52:12 【问题描述】:

我知道我可以通过带有Browser.Dom.getElement 的ID 获得Element

但是我怎样才能通过类名获得List Element

【问题讨论】:

您能否描述一下为什么需要该功能,您要解决的实际问题是什么?通常有比查询 DOM 更好的方法来解决 UI 场景。也许通过对状态进行建模,使得不需要 DOM 查询。 【参考方案1】:

从 Elm 0.19 开始,browser 包不公开任何其他帮助函数来查询 DOM。 getElement function itself is directly calling a kernel function:

getElement : String -> Task Error Element
getElement =
    Elm.Kernel.Browser.getElement

根据您要具体执行的操作,您可能需要编写一个 javascript 函数来查询元素、读取有趣的位并通过 the ports system 使您的 Elm 应用程序可以访问结果。

例如,查看elm-dom-ports package 以获得灵感。它将document.querySelectorAll() 函数作为端口公开,您可以通过订阅querySelectorAllResponse 来捕获其结果。

【讨论】:

以上是关于使用 Elm.Browser.Dom 按类名获取元素的主要内容,如果未能解决你的问题,请参考以下文章

如果类名是数字,则无法按类名获取元素

在 KineticJS 中按类名从阶段获取多个对象

在 UI 中按渲染顺序获取类名

javascript 按类名获取

javascript 按类名获取文本

html 按类名获取元素