繁体   English   中英

使用 jQuery & java 突出显示文档中的单词列表

[英]Highlight list of words in the document using jQuery & java

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

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

仅突出一个词就可以正常工作!

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM