我正在使用以下 JavaScript 代码来设置元素的值。
document.getElementById('alert['+i+']').innerHTML = "alert";
该元素嵌套在 Struts set 标签中。 (ID一致,没有故障。)
<s:set var="alert" >
<span id="<s:property value='"alert"+{#stat.index+4}' />"></span>
</s:set>
<s:set>
标签的 var
由 Struts <s:if>
标签使用。
<s:if test="%{#alert == 'alert'}">
//some code
</s:if>
当
<span>
标签位于<s:set>
标签之外时,<span>
标签的值会正确设置为"alert"
。
但是,当在 Struts <s:set>
标签内时,无法找到 <span>
标签。
如何成功设置
<s:set>
标签的值?使用 <span>
标签或直接设置 <s:set>
标签的值。
或者我可以以某种方式直接在 "alert"
标签中注入 <s:if>
值吗?
我使用Google和YouTube来寻找答案。 我尝试将
<span>
标签直接放在 <s:if>
标签中。
我尝试过使用 document.querySelector()
,但我无法让它与 Struts 标签一起使用。
如果您在 JavaScript 代码中使用
document.getElementById()
,则带有 id
的元素应该在 DOM 中可用。但它不可用,因为你把它放在 Struts <s:set>
标签中。它不是 UI 标签,也不渲染任何 HTML 元素。
您可以在
alert
属性中设置 value
变量的值。它允许在那里应用 OGNL 表达式。
<s:set var="alert" value="%{'alert'+(#stat.index+4)}"/>
<span id="<s:property value='%{#alert}'/>">
</span>
然后,如果您使用
<s:if>
标签,则应该在上下文中找到变量 alert
的值。