根据firstChild获得对象在FF和IE中的问题

      需求:同一个tr中有多个td,其中第一个td放置的是一个checkbox,后面的td中有一个放置的是普通的输入框input,html是这样的:

<td>
   <input type="checkbox" name="pids" value="${value.pid}" onclick="check(this)"/>
</td>
<td>
<input name="amount" style="width:40px;text-align:center;" value="${value.amount}" onKeyUp="keypress(this,this.value)"/>
</td>

 现在就由这个普通输入框input来获取这个checkbox,js是这样的:

 var tr=object.parentNode.parentNode;
 var chk=tr.getElementsByTagName('td')[0].firstChild;

 然后我根据chk.checked来判断是否选中的输入框,但是确出现麻烦了,在IE中可以正确的执行我要的操作,但是再FF却不行,最后测试了一下输出alert(chk.checked);发现在FF中显示的是undefined。

    最后去群里面问了,有的说在FF中把空格之类的都算作是一个child,于是乎输出childNodes.length,的确在IE中和FF中输出地也是不同的,一个网友建议把td的空格都去掉,于是我就这样写了:

<td><input type="checkbox" name="pids" value="${value.pid}" onclick="check(this)"/></td>

 这次在IE和FF中都可以了。

 

   算是不怎么懂js,觉得js很强大,但是也觉得有些麻烦,自有继续学了。

 

 

你可能感兴趣的:(html,IE)