今天遇到個問題就是我想在js中取得後台傳來的list中的值。原本頁面展現是用的EL表達式,一切都沒有什麼問題,但是我要動態獲取集合中的url然後在js中調用qrcode生成二維碼,當我嘗試按大部分的思路取值的時候遇到如下的問題
for(var i=0;i<${myTickets.size()};i++) { $('#qrcode'+i).qrcode({text: ${myTickets[i].url}}); }
呵呵呵,用調試工具看到${myTickets.size()}確實取到了list的長度,但是$ {myTickets[i].url}}確取任何數值!
然後我又嘗試如下取值
[javascript] view plain copy for(var i=0;i<${myTickets.size()};i++) { alert(${myTickets[0].url}) }
呵呵呵,取出來了,是不是很痛。但是問題正出在這裡:在for循環中使用EL表達式${myTickets[i].url}中的i是取不到值的,也就是說EL表達式不可以使用JS中的變數,EL表達式是一個整體。具體我們可以如下操作,在JS中使用foreach將值取出push到數組中,然後在循環遍歷數組,這樣可以完美解決:
[javascript] view plain copy var array = new Array(); <c:forEach items="${myTickets}" var="t"> array.push(${t.ticketNo}); //js中可以使用此标签,将EL表达式中的值push到数组中 </c:forEach> for(var i=0;i<array.length;i++) { $('#qrcode'+i).qrcode({text: ctx+"/wxpay/"+array[i]}); }
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
如何在<script></script>標籤中一樣可以使用el表達式
以上是javascript中遍歷EL表達式List集合中的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!