簡體   English   中英

在html標簽內執行Javascript函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM