在Purescript中选择ID的元素

时间:2017-01-14 05:10:29

标签: purescript halogen

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

我正在阅读有关Pursuit的文档,我在selectElement中看到了Util函数,但我在任何地方都看不到允许我按id选择的内容。

我可以使用getElementById :: ElementId -> NonElementParentNode -> Eff () (Nullable Element)获取Element,但我不知道如何将此Element转换为HTMLElement

Pursuit中的类型搜索功能也缺乏,所以我为这个天真的问题道歉。

1 个答案:

答案 0 :(得分:3)

在处理使用虚拟DOM的库时,通常不应该这样做,因为如果通过id保存对元素的引用,它最终会过时并引用完全不同的元素,或者是一个元素,不再附加到DOM。

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

如果确实想要使用getElementById,那么it is available from purescript-dom。它不是卤素的一部分,因为卤素不适用于通用DOM操作。这些实用程序功能仅用于初始化Halogen应用程序。