[英]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.