我有以下代码:
<h2> <c:out value="${Name}"/> </h2>
<img id="deleteSpecialCharacters('screenshot0<c:out value="${Name}"/>Preview')" class="screenshotImg" src="#" alt="screenshot"/>
使用javascript函数:
function deleteSpecialCharacters(String) {
var NewString = String;
NewString = NewString.replace(/[^A-Z0-9]+/ig, "_");
return NewString;
}
由于Java字符串包含特殊字符,我想在ID内部使用之前对其进行过滤。 但由于Javascript函数位于ID标记内,因此它将该函数视为String。
那么如何调用id过滤Java代码中的javascript函数
答案 0 :(得分:1)
您不能以这种方式执行JavaScript函数。您有两个选择:使用java在服务器端执行此操作并生成标识id="${...}"
,或者在onload
事件的客户端执行此操作。
答案 1 :(得分:0)
您可以尝试在加载HTML页面之前调用js函数。
您可以尝试在正文后面编写javascript函数deleteSpecialCharacters
。
<body>
<script type="text/javascript">
your js function
</script>
希望这有帮助!!
答案 2 :(得分:0)
<h2> <c:out value="${Name}"/> </h2>
<img class="screenshotImg" src="#" alt="screenshot"/>
<input type="hidden" id="replacement_name" value='screenshot0<c:out value="${Name}"/>Preview'/>
然后读取隐藏字段的值并将其传递给javascript方法,并将结果值作为id分配给img元素。
<script>
function deleteSpecialCharacters(String) {
var NewString = String;
NewString = NewString.replace(/[^A-Z0-9]+/ig, "_");
return NewString;
}
$(document).ready(function() {
var cleanStr = deleteSpecialCharacters($('#replacement_name').val());
$('.screenshotImg').attr('id', cleanStr);
});
</script>
只有在您确定该类只有一个img元素时才会有效。
更好的解决方案是从服务器本身传递实际和已清理的值,或者查看此线程 Regular expression to remove special characters in JSTL tags