你遇到的问题是the id
您在 ZUL(ZK 标记)中分配的元素与渲染的 DOM 元素 id 不是一对一的。 ZK 这样做有很多原因,但要点是您需要在不知道 DOM 元素 id 的情况下引用它们。
ZK 还为您提供了一个 JavaScript 框架,使这一切变得简单,他们经常将其称为“客户端编程”。
查看 ZK 有关客户端编程的文档,特别是有关的段落“如何在 JavaScript 中获取小部件引用” http://books.zkoss.org/wiki/Small_Talks/2010/April/Client_Side_Programming#How_to_Get_Widget_Reference_in_JavaScript.
在这里你会看到ZK JavaScript API http://www.zkoss.org/javadoc/latest/jsdoc/提供
<zk xmlns:w="http://www.zkoss.org/2005/zk/client">
<label id="titleBook"/>
<button label="button"
w:onClick="this.$f('titleBook').setValue('sean is cool')" />
</zk>
请注意,我正在定义w
命名空间作为 ZK 的客户端库只是为了激发客户端onClick
我有权访问的活动this
, the 按钮小部件 http://www.zkoss.org/javadoc/latest/jsdoc/zul/wgt/Button.html.
听起来你可能在 vanilla JS 中工作,会做一些更像......
<zk>
<script defer="true">
jq("$titleBook").css('color', 'green');
zk("$titleBook").setValue('sean is cool');
</script>
<label id="titleBook"/>
</zk>
在这里我们利用jq() http://www.zkoss.org/javadoc/latest/jsdoc/_global_/jq.html and zk() http://www.zkoss.org/javadoc/latest/jsdoc/_global_/jq.html#zkZK JavaScript API 中的全局变量。前者只是 jQuery 的$()
后者是ZK的对应物。不同之处在于 jQuery 函数返回一个 jQuery 对象,而后者返回一个 ZK 小部件。两者都进行了扩展以支持新的$
CSS 样式选择器引用 ZK 小部件 ID(您在 ZUL/Java 中分配的内容)。