我正在使用以下代码来突出显示文档中的特定单词
<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>
它不起作用,这不会突出显示列表中的单词
答案 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