【问题标题】:How to use JSTL var in Jquery selector如何在 Jquery 选择器中使用 JSTL var
【发布时间】:2011-08-19 12:56:17
【问题描述】:

我正在使用以下 Jquery 选择器

$("#selectedQuery td input:radio").attr('checked', true);

selectedQuery 是一个声明为

的 JSTL 变量
<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />  

我用硬编码值测试了选择器,它工作正常,但与 selectedQuery 一起使用时没有运气。
我们如何在 Jquery 中使用 JSTL &lt;c:set&gt; var ?有什么解决办法吗?

【问题讨论】:

    标签: jquery jquery-selectors jstl


    【解决方案1】:

    将 JSTL 代码与 JavaScript 混合会导致您的代码变得非常混乱。如果不可避免,我将所有 JSTL 变量都设置为 JavaScript 变量:

    <c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
    <script type="text/javascript">
        //NOTE: we are sure 'selectedQuery' does not contain any double-quotes,
        // but most values will need to be escaped before doing this.
        var selectedQuery = "${selectedQuery}";
    
        // etc.
    </script>
    
    ...
    
    <script type="text/javascript">
        $("#" + selectedQuery + " td input:radio").attr('checked', true);
    </script>
    

    【讨论】:

    • 感谢您的建议。一定会尽量避免它:)
    【解决方案2】:

    在 JSP 中:

    <c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />  
    
    <script>
        $("#${selectedQuery} td input:radio").attr('checked', true);
    </script>
    

    【讨论】:

    • 抱歉迟到了。前两天我一直处于离线状态。这是生成的脚本$("#270 td input:radio").attr('checked', true);270selectedQuery
    • jquery 数据表有问题。你的解决方案就像一个魅力:) 谢谢。
    【解决方案3】:

    我一直都在做这样的事情。 JSP 解析器不知道也不关心&lt;script&gt; 标记的内容(无论是否使用jQuery)与JSP 页面中的任何其他内容之间的区别。

    如果你这样做应该可以正常工作:

    <c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
    
    ...
    
    <script>
        $("#${selectedQuery} td input:radio").attr('checked', true);
    </script>
    

    请注意,这要求带有 jQ​​uery 选择器的 &lt;script&gt; 元素与 &lt;c:set&gt; 位于同一页面/JSP 范围内。如果它们不在同一个范围内,那么这当然行不通。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 2011-05-17
      • 2016-09-27
      • 2012-03-07
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      相关资源
      最近更新 更多