今天发现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有啥我能有啥就有啥...