有了lift,如果我们想替换一些DOM的内容,SetHtml
如果我们知道DOM的ID就可以使用:
SetHtml(domID, Text("new text"))
但是SetHtml
只接受id
,如果我想按类查找 DOM 怎么办?
SetHtml(".message", Text("new message"))
它不能工作(当然),我现在该怎么办?
如果你想使用 scala jquery DLS,也许这样的东西会起作用?
JqJE.Jq(".class") ~> JqJE.JqHtml(Text(""))
这基本上构造了与@DrHossein 编写的相同的js 代码。此外,如果您愿意,您可以使用JsCmds.Run("")
和内联您需要的所有内容作为原始文本。
上面的两个答案都应该适合你。另一种选择是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
}
改用这个:
$(".somClass").html("new message");