0

有了lift,如果我们想替换一些DOM的内容,SetHtml如果我们知道DOM的ID就可以使用:

SetHtml(domID, Text("new text"))

但是SetHtml只接受id,如果我想按类查找 DOM 怎么办?

SetHtml(".message", Text("new message"))

它不能工作(当然),我现在该怎么办?

4

3 回答 3

2

如果你想使用 scala jquery DLS,也许这样的东西会起作用?

JqJE.Jq(".class") ~> JqJE.JqHtml(Text(""))

这基本上构造了与@DrHossein 编写的相同的js 代码。此外,如果您愿意,您可以使用JsCmds.Run("")和内联您需要的所有内容作为原始文本。

于 2013-05-11T12:26:53.523 回答
0

上面的两个答案都应该适合你。另一种选择是JsCmd使用上述建议创建您自己的可重复使用。这是 Lift 默认使用的代码SetHtml

case class JqSetHtml(uid: String, content: NodeSeq) extends JsCmd {
  /**
   * Eagerly evaluate
   */
  val toJsCmd = (JqJE.JqId(JE.Str(uid)) ~> JqJE.JqHtml(content)).cmd.toJsCmd
}

因此,如果您想将它用于通用 html 类,您可以执行以下操作:

case class JqSetHtmlByClass(className: String, content: NodeSeq) extends JsCmd {
  val toJsCmd = (JqJE.JqId(JE.Str(className)) ~> JqJE.JqHtml(content)).cmd.toJsCmd
}
于 2013-05-11T13:50:53.490 回答
0

改用这个:

$(".somClass").html("new message");
于 2013-05-11T10:56:42.980 回答