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函数?
答案 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")