在 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 应用程序。
在 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 应用程序。