在Scala.js中,如何切换类中元素的可见性?

时间:2018-01-23 06:31:19

标签: javascript scala.js

在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给了我一个错误。

1 个答案:

答案 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()

那是未经考验的(我今天和流感作斗争,所以请原谅我有任何错误),但我认为它应该有用......