form的一个问题

今天发现form标签内的input,select元素可以直接使用form.id,form.name的形式获取,比如:

<form id=r1><input id=r2 /><select name=r3 /></form>

可以使用以下的js代码获取input

var inputele = document.forms.r1.r2;

如果select的name属性值也为r2,那么inputele就是一个nodelist,存放input和select

然后这里有个问题,就是这个nodelist是静态的还是动态的?

在firefox里测试,发现firefox对这个的处理有点不明确,如下面的代码:

var inputele = document.forms.r1.r2;

inputele[0].id=r3;

inputele[0].name=r3;

alert(inputele.length);

如果nodelist是静态的,那么alert显示的值是2,如果是动态的,那么显示的值是0,但firefox显示的值是1...

在chrome里测试,alert显示的值是2

我比较认可chrome的做法,所以,就按chrome的来实现吧。

刚才看到一段话,比较有意思:

ie是我想有啥就有啥;
firefox是w3有啥我有啥;
chrome是w3和ie有啥我有啥;
opera是w3和ie有啥我想有啥就有啥...

我想我的应该是:

firefox和chrome有啥我能有啥就有啥...

posted on 2012-12-16 11:30  头大大  阅读(169)  评论(0编辑  收藏  举报

导航