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 没有任何效果,我也在数组中尝试过......但没有任何效果......提前帮助我谢谢......
最佳答案
请引用https://stackoverflow.com/a/15312976/1031191 。这意味着您的 xmlhttp 代码没有问题。尝试在浏览器中使用 JavaScript 控制台来验证 uname
是一个字符串并且包含正确的数据。
收到“undefined”意味着uname
的值在客户端恰好是“undefined”。请参阅 getParameter 的引用:http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletRequest.html 。
它表示您必须接收 String 或 null。 (因此,在您的情况下,由于某种原因, xmlhttp.send() 的参数是“uname=undefined”。)
更新 2:
可能您需要 document.getElementsByTagName('td')[3]
而不是“this”。
但是,嘿,如果您无论如何都使用 jQuery,为什么不编写 $('td').get(3)
而不是 getElementsByTagName?
更新 3:
我认为您的 html 中的 td 元素少于 4 个。请注意,JavaScript 数组是从 0 开始索引的。如果您不小心尝试访问数组中超出范围的索引,您会收到“未定义”消息。
关于java - InnerHTML 没有给 servlet 带来值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999721/