0
cell = this.getElementsByTagName("td")[3];
uname = cell.innerHTML;

我通过 innerHTML 获取特定单元格的值并将该值传递给 Servlet

xmlhttp.open("POST","UserServlet",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("uname="+uname);

在 Servlet 中

uname = request.getParameter("uname");
        out.print(uname);
        System.out.println(uname);

我在控制台中得到“未定义”.......有什么方法可以获取值并将其传递给 servlet 我试过 .innerHTML,.innerText,.value 没有任何效果,我也在数组中尝试过......但没有工作......帮助我提前谢谢......

4

1 回答 1

1

请参考https://stackoverflow.com/a/15312976/1031191。这意味着您的 xmlhttp 代码很好。尝试在浏览器中使用 javascript 控制台来验证它uname是一个字符串并包含正确的数据。

接收“未定义”意味着uname客户端的值恰好是“未定义”。请参阅 getParameter 的参考:http ://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletRequest.html 。它说您必须接收一个字符串或空值。(因此在您的情况下, xmlhttp.send() 的参数由于某种原因是“uname=undefined”。)

更新 2:

可能你需要document.getElementsByTagName('td')[3]而不是“这个”。
但是,嘿,如果你仍然使用 jQuery,你为什么不写$('td').get(3)而不是 getElementsByTagName 呢?

更新 3:

我认为您的 html 中的td元素少于 4 个。请注意,javascript 数组的索引从 0 开始。如果您不小心尝试访问超出范围的数组中的索引,您会收到“未定义”。

于 2013-09-25T08:30:07.167 回答