在Scala.js程序中,我想切换“my-img”类中HTML页面上所有元素的可见性。到目前为止我所拥有的是
import org.scalajs.dom
import dom.document
val elems: dom.NodeList = document.getElemsByClassName("my-img")
for (i <- 0 until elems.length) {
val e: dom.Node = elems(i)
e.style.display = "none" <-- this chokes, says style is not a member of Node
此时我正在尝试访问Node的样式成员,根据Javascript文档应该存在,但Scala.js给了我一个错误。
答案 0 :(得分:1)
(请注意,这本身就是一个Javascript问题而不是Scala.js。)
根据您是否愿意包含jQuery库,有一些答案。这是Javascript世界中有点沉重但非常常见的库,它也经常用于Scala.js编程。这不是必需的,但它使这种事情变得相当容易。
有两种流行的Scala.js&#34;外墙&#34;这个库的(Scala描述);我写了其中一个,jquery-facade。如果你把它拉进去(如该页面上所述),问题变得相当简单:
import org.querki.jquery._
// Fetch all of the nodes. jQuery uses CSS selectors, more or less,
// so this means "everything with class my-img".
val myImgs = $(".my-img")
// Hide all of them. myImgs is a JQuery object -- a wrapper around
// all of those nodes -- so a single call hides all of them:
myImgs.hide()
// Or show them:
myImgs.show()
那是未经考验的(我今天和流感作斗争,所以请原谅我有任何错误),但我认为它应该有用......