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

4

3 回答 3

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。您的错误可能在其他地方。

于 2013-05-16T12:16:11.193 回答
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给出的上述答案也应该有效:)

于 2013-05-16T12:23:50.127 回答
0

而不是使用

this.name

尝试将此作为参数传递并在调用方法中执行类似的操作

this.getAttribute("name")
于 2013-05-16T12:30:51.003 回答