使用jQuery& amp;高亮显示文档中的单词列表java的

时间:2011-06-29 12:43:43

标签: java javascript jquery

我正在使用以下代码来突出显示文档中的特定单词

<script> 
$(document).ready(function(){
   $('h1').highlight('word1');
      });
</script>

它可以正常突出一个单词!

但我的程序中有一个用java编写的arrylist ArrayList wordsList;

我不知道怎么做我写了以下

<script>
         $(document).ready(function(){
          for (int y=0;y<wordslist.size();y++) 
          { 
         $('h1').highlight(wordslist.get(y));
          }
     });
</script>

它不起作用,这不会突出显示列表中的单词

2 个答案:

答案 0 :(得分:1)

您需要使用<% %>作为Java代码:

<script>
      $(document).ready(function(){
         <% for (int y=0;y<wordslist.size();y++) 
          { %> 
         $('h1').highlight('<%= wordslist.get(y) %>');
        <%  } %>
     });
</script>

答案 1 :(得分:0)

wordsList是一个Java变量。它仅在服务器端可用。您需要在客户端迭代它,执行JavaScript。因此,您需要将Java变量转换为JavaScript代码:

<script>
  $(document).ready(function() { 
     var javaScriptWordList = [
         <c:forEach var="word" items="${wordList}">'${word}', </c:forEach> // JSP : server-side
     ];  
     for (var i = 0; i < javaScriptWordList.length; i++) {
         $('h1').highlight(javaScriptWordList[i]);
     }
 });
</script>

执行此JSP后,如果Java wordList包含“hello”,“world”,生成的HTML将如下所示:

<script>
  $(document).ready(function() {
     var javaScriptWordList = [
         'hello', 'world',
     ];
     for (var i = 0; i < javaScriptWordList.length; i++) {
         $('h1').highlight(javaScriptWordList[i]);
     } 
 });
</script>

但是请注意,如果它们包含会使JavaScript代码无效的字符(例如,如果其中一个单词是O'Reilly),那么你肯定应该逃避列表中的单词。看看commons-lang StringEscapeUtils.escapeJavaScript