2017-08-27 2 views
0

Folgendes funktioniert nicht, da Seiten Dom.nodeList und DomTokenList.forEach einen Dom.domTokenList erwartet.bs-webapi - Wie über Dom.nodeList zu loopen?

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); 
+0

Sie sollten versuchen, ein bisschen mehr Geduld und vermeiden unnötiges Cross-Posting so zu sein. Es war bereits auf Discord beantwortet worden, als du das gepostet hast. – glennsl

Antwort

1

aus dem Grund paraphrasiert Discord, mit freundlicher Genehmigung von @anmonteiro:

Js.Array.forEach Js.log (NodeList.toArray sides); 

Hier ist ein Beispiel dafür, wie für jedes Element in einem NodeList zu setAttribute. Hinweis: Element.ofNode kann verwendet werden, um eine in option Dom.element zu konvertieren.

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#VALforEach

Verwandte Themen