您遇到的问题是您id
在 ZUL(ZK 标记)中分配的元素与呈现的 DOM 元素 id 不是一对一的。ZK 这样做的原因有很多,但需要注意的是,您需要在不知道其 id 的情况下引用 DOM 元素。
ZK 还为您提供了一个 JavaScript 框架,使这变得容易,他们经常将其称为“客户端编程”。
查看 ZK 关于客户端编程的文档,特别是关于“如何在 JavaScript 中获取小部件参考”的段落。
在这里,您将看到ZK JavaScript API提供
<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>
请注意,我将命名空间定义为 ZK 的客户端库,只是为了触发我可以访问w
的客户端事件,即Button 小部件。onClick
this
听起来您可能正在使用香草 JS 做一些类似的事情。
<zk>
<script defer="true">
jq("$titleBook").css('color', 'green');
zk("$titleBook").setValue('sean is cool');
</script>
<label id="titleBook"/>
</zk>
在这里,我们利用ZK JavaScript API 中的jq()
和全局变量。zk()
前者只是 jQuery 的$()
,后者是 ZK 的对应物。不同之处在于 jQuery 函数返回一个 jQuery 对象,而后者返回一个 ZK 小部件。两者都被扩展以支持新的$
CSS 样式选择器,它引用 ZK 小部件 ID(您在 ZUL/Java 中分配的内容)。