我正在使用以下Jquery选择器
$("#selectedQuery td input:radio").attr('checked', true);
其中selectedQuery
是声明为
<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
我使用硬编码值测试了选择器,它工作正常但与selectedQuery
一起使用时没有运气。
我们如何在Jquery中使用JSTL <c:set>
var?有什么工作吗?
答案 0 :(得分:13)
将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>
答案 1 :(得分:4)
在JSP中:
<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
<script>
$("#${selectedQuery} td input:radio").attr('checked', true);
</script>
答案 2 :(得分:2)
我一直这样做。 JSP解析器不知道或关心<script>
标记的内容(无论是否使用jQuery)与JSP页面中的任何其他内容之间的差异。
如果你这样做,它应该可以正常工作:
<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
...
<script>
$("#${selectedQuery} td input:radio").attr('checked', true);
</script>
请注意,这要求jQuery选择器的<script>
元素位于与<c:set>
相同的页面/ JSP范围内。如果它们不在同一范围内,那么当然这将不起作用。