在html标记

时间:2016-12-08 09:55:42

标签: javascript jquery html jsp

我有以下代码:

 <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函数

3 个答案:

答案 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