如何在 Reason 中设置 DOM 元素的文本?
How do I set a DOM element's text in Reason?
我目前正在学习 Reason。这是我到目前为止所写的内容:
[@bs.val] external document: Dom.document = "document";
[@bs.send]
external get_element_by_id: (Dom.document, string) => Js.nullable(Dom.node) =
"getElementById";
let our_node =
Js.Nullable.toOption(get_element_by_id(document, "do_something"));
let d = Js.Date.make();
switch (our_node) {
| None => Js.log("can't find the output element")
| Some(nnode) => nnode.textContent = Js.Date.toString(d)
};
我想将 DOM 节点的文本设置为当前日期。但是,我收到一个错误:The record field textContent can't be found
。查看 node_modules/bs-platform/lib/ocaml/dom.ml,我发现 Dom.node
或 Dom.htmlElement
等中确实没有 textContent
字段。如何设置文字?
我通过深入研究 bs-webapi 代码找到了解决方案。
显然你只需要添加一个 bs-set
指令:
[@bs.set] external setTextContent: (Dom.htmlElement, string) => unit = "textContent";
中有更详尽的解释
我目前正在学习 Reason。这是我到目前为止所写的内容:
[@bs.val] external document: Dom.document = "document";
[@bs.send]
external get_element_by_id: (Dom.document, string) => Js.nullable(Dom.node) =
"getElementById";
let our_node =
Js.Nullable.toOption(get_element_by_id(document, "do_something"));
let d = Js.Date.make();
switch (our_node) {
| None => Js.log("can't find the output element")
| Some(nnode) => nnode.textContent = Js.Date.toString(d)
};
我想将 DOM 节点的文本设置为当前日期。但是,我收到一个错误:The record field textContent can't be found
。查看 node_modules/bs-platform/lib/ocaml/dom.ml,我发现 Dom.node
或 Dom.htmlElement
等中确实没有 textContent
字段。如何设置文字?
我通过深入研究 bs-webapi 代码找到了解决方案。
显然你只需要添加一个 bs-set
指令:
[@bs.set] external setTextContent: (Dom.htmlElement, string) => unit = "textContent";
中有更详尽的解释