javascript - 从 scala.js 调用 jquery .each 方法

标签 javascript scala scala.js

这个文档已经过时了吗? http://www.scala-js.org/doc/calling-javascript.html 似乎无法在 intellij 中得到正确的结果:

import org.scalajs.dom.html
import org.scalajs.dom
import org.scalajs.dom.raw.HTMLElement
import scala.scalajs.js
import js.JSConverters._

import fr.iscpif.scaladget.d3._
import fr.iscpif.scaladget.mapping._

import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import org.scalajs.jquery.jQuery

/**
 * Created by IDEA on 31/10/15.
 */
@JSExport
object LearnD3 {
  @JSExport
  def main(div: html.Div): Unit = {
    jQuery("#list > li").each((x, y) => y)
  }
}

第一个 dom.HTMLElement 似乎不存在。有 org.scalajs.dom.raw.HTMLElement,但即使我导入,也存在类型不匹配:

enter image description here

最佳答案

您需要指定参数的类型。以下代码有效:

val x = jQuery("#list > li").each((i: js.Any, y: Element) => y)

您可能会注意到,索引 i 的类型为 Any,并且通常您希望索引的类型为 Int。因为这类问题,jquery-facade诞生了:一个更强类型的 jquery 外观。我强烈推荐它。 jquery-facade 中的相同代码:

 import org.querki.jquery._

 ... 

 val x = $("#list > li").each((y: Element, i: Int) => y)

或者,如果您不需要 i 索引:

 val x = $("#list > li").each((y: Element) => y)

或者您希望推断 y 类型:

 val x = $("#list > li").foreach(y => y)

关于javascript - 从 scala.js 调用 jquery .each 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33483226/

相关文章:

javascript - Grails-具有多个值的jQuery自动完成

javascript - 调用 React 渲染的 api 时 $_SESSION 为空

scala - 展平密封的案例类层次结构

node.js - 如何从 scala.js 调用 nodejs 模块?

scala.js - 如何将现有的 Scala 库移植到 Scalajs?

javascript - 在 Oracle Apex 中通过 JavaScript 分配字段值

javascript - 从 html 向函数传递值

performance - Scala 惰性值 : performance penalty? 线程安全?

Scala - 在伴随对象中实现 "manager"模式?

Scala.js 和 ClassTag 导致崩溃