【问题标题】:JavaScript and Java in the same for loop, is this possible?JavaScript 和 Java 在同一个 for 循环中,这可能吗?
【发布时间】:2012-05-02 14:50:50
【问题描述】:

在一个 JSP 文件中,我使用以下代码向属于特定类的元素添加属性:

    $($('.dhx_combo_input').get(0)).attr('style','width: 100%;<%=(highlight.get(0))?"background-color: #FF0000;":""%>');  
    $($('.dhx_combo_input').get(1)).attr('style','width: 100%;<%=(highlight.get(1))?"background-color: #FF0000;":""%>');  
    $($('.dhx_combo_input').get(2)).attr('style','width: 100%;<%=(highlight.get(2))?"background-color: #FF0000;":""%>'); 

highlight 是一个ArrayList&lt;Boolean&gt;

我得到了很多这样的行,只有索引不同。它既不漂亮也不简洁 我试图用 for 循环替换它,但我需要在 JS 和 Java 中使用索引。我不确定这是否可能。我会坚持使用这种语法还是有更好的解决方案?

编辑:

循环必须受到属于dhx_combo_input 类的元素数量的限制。

【问题讨论】:

  • 旁注:您可以使用$('.dhx_combo_input').eq(0).attr 省略创建多个jquery 对象。
  • @h4b0 他已经写了他尝试/正在使用的东西,并且正在寻求更好的方法来做到这一点。似乎“你尝试过什么”更像是一种反射,而不是一个真正的问题。
  • @Yoshi 他也在询问在 Java 和 JS 中使用相同的索引,他不确定这是否可能 - 我指的是这个案例。
  • @h4b0 实际上,我不想编写我尝试过的 for 循环,因为它显然是错误的,而且没有意义(不想用糟糕的代码来吓唬优秀的 web-dev =))。
  • @Yoshi 感谢您的提示,我不太了解 JQuery 语法! (詹姆斯也给了!)

标签: java javascript jsp


【解决方案1】:

除非我误解了你的问题,否则你可以这样做:

<%
    for(int i=0;...){
%>

$('.dhx_combo_input').eq(<%=i%>).attr('style','width: 100%;<%=(highlight.get(i))?"background-color: #FF0000;":""%>');

<%
    }
%>

注意,我稍微修改了您的 jquery 以使用 eq 而不是 get,因此您不必调用 jquery 两次。

【讨论】:

  • (需要注意的是,最好避免使用 scriptlet 并改用 JSTL。)
  • @James Montagne 感谢此解决方案有效。我还有一个问题,for 中的最大限制在 JS var 中($('.dhx_combo_input') 的数量)我可以在 for 中使用它吗?
  • 你的jsp中的java代码运行在服务器端,无法访问客户端的javascript变量。但是,这些.dhx_combo_input 元素也是在服务器端创建的,因此您必须有某种方式告诉服务器端有多少。
  • @JamesMontagne 谢谢,这也是我所理解的,希望顺便说一句。无论如何我会处理的,再次感谢!
猜你喜欢
  • 2011-11-05
  • 1970-01-01
  • 2019-08-15
  • 2014-01-12
  • 1970-01-01
  • 2020-06-03
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多