Как зациклить на Dom.nodeList?
Следующее не будет работать, так как стороны Dom.nodeList
а также DomTokenList.forEach
ожидает Dom.domTokenList
,
open Bs_webapi.Dom;
external length : Dom.nodeList => int = "" [@@bs.get];
let sides = Document.querySelectorAll "#carousel > figure" document;
DomTokenList.forEach (fun item _ => print_endline item) (sides);
1 ответ
Решение
Перефразировано из Раздора Разума, любезно предоставлено @anmonteiro:
Js.Array.forEach Js.log (NodeList.toArray sides);
Вот пример того, как setAttribute
для каждого элемента в NodeList
, Заметка, Element.ofNode
может быть использован для преобразования Dom.node
в option Dom.element
,
open Bs_webapi.Dom;
external length : Dom.nodeList => int = "" [@@bs.get];
let sides = Document.querySelectorAll "#carousel > figure" document;
Js.Array.forEachi
(fun side index =>
switch (Element.ofNode side) {
| Some element =>
Element.setAttribute "style" "some style here" element
| None => ()
}
)
(NodeList.toArray sides)
https://bucklescript.github.io/bucklescript/api/Js_array.html