如何在Jquery选择器中使用JSTL变量

如何在Jquery选择器中使用JSTL变量,jquery,jquery-selectors,jstl,Jquery,Jquery Selectors,Jstl,我使用以下Jquery选择器 $("#selectedQuery td input:radio").attr('checked', true); 其中selectedQuery是一个声明为 <c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" /> 我用硬编码的值测试了选择器,它工作正常,但与selectedQuery一起使用时运气不佳。 我们如何在Jquery中使用JSTL变量?在JSP中有什

我使用以下Jquery选择器

$("#selectedQuery td input:radio").attr('checked', true);
其中selectedQuery是一个声明为

<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />  
我用硬编码的值测试了选择器,它工作正常,但与selectedQuery一起使用时运气不佳。 我们如何在Jquery中使用JSTL变量?在JSP中有什么解决方法吗?

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

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>
在JSP中:

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

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>

我一直在做这样的事情。JSP解析器不知道或不关心标记内容(无论是否使用jQuery)与JSP页面中任何其他内容之间的差异

如果您执行以下操作,它应该可以正常工作:

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

...

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>

注意,这要求带有jQuery选择器的元素与您的。如果它们不在同一范围内,那么这当然不起作用。

我一直在做类似的事情。JSP解析器不知道或不关心标记内容(无论是否使用jQuery)与JSP页面中任何其他内容之间的差异

如果您执行以下操作,它应该可以正常工作:

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

...

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>

注意,这要求带有jQuery选择器的元素与您的。如果它们不在同一范围内,那么这当然不起作用。

将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>

将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>

谢谢你的建议。我一定会尽量避免的:谢谢你的建议。我一定会尽量避免的:很抱歉迟到了。我已经离线两天了。下面是生成的脚本$270 td input:radio.attr'checked',true;。270是selectedQuery。jquery datatable出现问题。你的解决方案非常有效:谢谢。很抱歉迟到了。过去两天我一直在离线。下面是生成的脚本$270 td input:radio.attr'checked',true;。270是selectedQuery。jquery datatable出现问题。你的解决方案非常有效:谢谢。