[英]Executing an Javascript function inside html tags
我有以下代码:
<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标记内,因此它将函数视为字符串。
那么我该如何在id内调用javascript函数来过滤Java代码
您不能以这种方式执行JavaScript函数。 您有两种选择:要么使用Java在服务器端进行操作,然后生成id id="${...}"
要么在onload
事件的客户端进行操作。
您可以尝试在HTML页面加载之前调用js函数。
您可以尝试在正文之后编写JavaScript函数deleteSpecialCharacters
。
<body>
<script type="text/javascript">
your js function
</script>
希望这可以帮助!!
<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元素时,此方法才有效。
更好的解决方案是从服务器本身传递实际值和清除值,或者查看此线程正则表达式以删除JSTL标记中的特殊字符 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.