在 Purescript 中按 Id 选择元素

Selecting Elements By Id in Purescript

purescript-halogen 中是否有一个函数通过 id 到 select 一个元素,或者我是否需要自定义它的角色(这对我来说似乎很奇怪)。

我正在阅读有关 Pursuit 的文档,我在 Util 中看到了一个 selectElement 函数,但我在任何地方都看不到让我 select by [=11] 的东西=].

我可以用getElementById :: ElementId -> NonElementParentNode -> Eff () (Nullable Element)得到一个Element,但我不知道如何把这个Element变成一个HTMLElement

Pursuit 中也缺少类型搜索功能,所以对于这个幼稚的问题,我深表歉意。

在处理使用虚拟 DOM 的库时,这不是您通常应该做的事情,因为如果您通过 id 保存对元素的引用,它可能会过时并引用完全不同的元素元素,或不再附加到 DOM.

的元素

获取元素的方法是使用ref,有一个使用它的例子in this section of the guide。它的工作方式类似于事件处理程序,只要元素存在或被删除,就会在组件上引发查询。如果您使用更新组件状态中的引用的查询,您可以确保知道您始终拥有您想要的实际元素(或者 Nothing 如果它由于某种原因不存在)。

如果您真的想要使用getElementById,那么it is available from purescript-dom。它不是卤素的一部分,因为卤素不用于一般目的 DOM 操作。提供这些实用函数只是为了更容易初始化 Halogen 应用程序。