直接贴代码
<html >
<head>
<title>无标题文档</title>
<script language="javascript">
var obj = document.getElementsByName("sdf")[0];
alert(obj.value);
var str = obj.parentNode.parentNode.nextSibling.childNodes[1].value;
alert(str);
</script>
</head><body>
<table border="1">
<tr>
   <td>aaa</td>
   <td>bbb</td> 
</tr>
<tr>
   <td>ccc</td>
   <td><input name="sdf" type="text" id="12" value="ddd"></span></td>
</tr>
<tr>
  <td><span><input name="sdf" type="text" value="eee"></span>sdfsdf</td>
  <td>fff</td>
</tr>
</table>
</body>
</html>
一直报错,说是obj.value为空或者不是对象,搞不懂为什么?

解决方案 »

  1.   

    JS执行的时候,页面还没加载完呢,放在最下面,或者放在window.onload里面
    <html > 
    <head> 
    <title>无标题文档 </title> </head> <body> 
    <table border="1"> 
    <tr> 
      <td>aaa </td> 
      <td>bbb </td> 
    </tr> 
    <tr> 
      <td>ccc </td> 
      <td> <input name="sdf" type="text" id="12" value="ddd"> </span> </td> 
    </tr> 
    <tr> 
      <td> <span> <input name="sdf" type="text" value="eee"> </span>sdfsdf </td> 
      <td>fff </td> 
    </tr> 
    </table> 
    </body> 
    <script language="javascript"> 
    var obj = document.getElementsByName("sdf")[0]; 
    alert(obj.value); 
    var str = obj.parentNode.parentNode.nextSibling.childNodes[1].value; 
    alert(str); 
    </script> 
    </html>