JSP中的Javascript帮助

时间:2013-05-16 12:11:41

标签: javascript jsp

 String sample=res[i][j][k].replaceAll(" ","_");

 out.print("<td align=center name="+sample+" onmouseover=tt(this.name)>");

  <script type="text/javascript">
        function tt(n){
                        var x=n;
            alert(x);
                    }
    </script>

警告框在鼠标悬停时显示未定义。我传递的值“样本”是正确的,因为我已经测试过了 有什么建议吗? 有没有其他方法可以将鼠标悬停时将值“sample”传递给javascript函数?

3 个答案:

答案 0 :(得分:1)

如果事实上设置了sample,您应该能够:

<% String sample = res[i][j][k].replaceAll(" ", "_"); %>
<td align="center" name="<%= sample %>" onmouseover="tt(this.name)">

// rest here

虽然,我可能更愿意将sample作为servlet的请求属性公开:

request.setAttribute("sample", res[i][j][k].replaceAll(" ", "_");

并在JSP中访问它。

但是,除非sample实际设置正确,否则这一切都无济于事。并且不清楚你的例子是否真的是你尝试过的,或者只是“伪”代码。

修改 我没有考虑你的javascript是否真的正确。所以检查实际生成的HTML。您的错误可能在其他地方。

答案 1 :(得分:0)

String sample=res[i][j][k].replaceAll(" ","_");

out.print("<td align=center name='"+sample+"' onmouseover=tt(this.name)>");

<script type="text/javascript">
     function tt(n){
                    var x=n;
        alert(x);
                }
  </script>

只需更改out.print中的名称,以便将其视为正确的字符串。如果发布这个,或@NilsH给出的上述答案也应该有效:)

答案 2 :(得分:0)

而不是使用

this.name

尝试传递这个作为参数,并在调用方法中执行类似这样的操作

this.getAttribute("name")