读取 JavaScript 中的 wicket id 值
Read wicket id value in JavaScript
所以我在 HTML:
中设置了 wicket id
<span wicket:id="current_env"></span>
我需要能够在 JavaScript 中阅读。
我试过的是使用 document.getElementById('current_env')
但这一直在返回 null
.
这可能吗?如果没有,还有另一种方法可以简单地将 id 值传递回我的 JS 吗?
请使用下面 Mihir 的回答
以下可行,但速度较慢,不是好的解决方案!
您可以遍历所有跨度,并查找具有所需 wicket:id
:
的跨度
Array.from(document.getElementsByTagName('span')).forEach(v => {
if (v.getAttribute('wicket:id') == 'current_env') {
alert(v.innerHTML);
}
});
你得到 null 的原因是因为它是 wicket:id 而不是 html "id"。要获取html id 属性,需要在添加组件时在java 代码中使用setMarkupId("currentEnv") 设置markupId。然后将该 'id' 值用于您的 java 脚本。
您可以通过添加 markupId 来验证这一点,然后查看在 html 元素中显示 id="currentEnv" 的页面资源。
此外,您可能需要考虑从 Wicket java class 中调用 java 脚本。这样,您可以通过将 markupid 作为参数传递来创建可重用组件。
所以我在 HTML:
中设置了 wicket id<span wicket:id="current_env"></span>
我需要能够在 JavaScript 中阅读。
我试过的是使用 document.getElementById('current_env')
但这一直在返回 null
.
这可能吗?如果没有,还有另一种方法可以简单地将 id 值传递回我的 JS 吗?
请使用下面 Mihir 的回答
以下可行,但速度较慢,不是好的解决方案!
您可以遍历所有跨度,并查找具有所需 wicket:id
:
Array.from(document.getElementsByTagName('span')).forEach(v => {
if (v.getAttribute('wicket:id') == 'current_env') {
alert(v.innerHTML);
}
});
你得到 null 的原因是因为它是 wicket:id 而不是 html "id"。要获取html id 属性,需要在添加组件时在java 代码中使用setMarkupId("currentEnv") 设置markupId。然后将该 'id' 值用于您的 java 脚本。
您可以通过添加 markupId 来验证这一点,然后查看在 html 元素中显示 id="currentEnv" 的页面资源。
此外,您可能需要考虑从 Wicket java class 中调用 java 脚本。这样,您可以通过将 markupid 作为参数传递来创建可重用组件。