var radios = document.getElementsByName("index");
for (var i = 0; i < radios.length; i ++) {
var radioI = radios[i];
if (radioI.checked == true) {
var flwCode = radioI.flwCode;---取值失败。
var taskId = radioI.taskId;---取值失败
非标准属性不能直接用.号取,有的浏览器并不兼容,常规属性用.号取没问题。
你自己虽然已经解决,但即使是使用getAttribute也不一定兼容所有的浏览器,更具体的说是getAttribute某些特定的属性在不同的浏览器里可能不同,比如getAttribute javascript的事件,如:getAttribute("onclick")。
你的学习方法没有问题,把这些原生的javascript先学会了,后面可以学jquery,它能帮我们很好的处理兼容性问题。
for循环少了花括号,而且for循环中,你的radiol一直是取到fadios最后一个的值。不是一个新的数组,自然你下面的取值是失败的。
不是没有花括号,是下面代码太多,没有必要放上来,而且,看清楚,是单独一台电脑的所有浏览器这样,其他所有电脑所有浏览器正常
单独一台的话更多的可能是该连接服务器,也许是浏览器版本问题,也许是卡顿了,或者这台机器被做了什么限制?
电脑的问题,但是不知道是啥问题啊?????
@luoshifu: 你可以先看下这台机器的浏览器跟别的机器的,再看看你服务器上有没有对这台机器做限制,然后直接在这台机器上执行你的代码看看能不能取到
问题解决:
<input type="radio" name="index" taskId="<%=map.get("ID") %>" flwCode="<%=map.get("FLW_CODE") %>" />
--------------------上面是html--下面是JS方法-------------------------------------------
var radios = document.getElementsByName("index");
for (var i = 0; i < radios.length; i ++) {
var radioI = radios[i];
if (radioI.checked == true) {
//var flwCode = radioI.flwCode;
//var taskId = radioI.taskId;//非标准属性,建议使用下面的取属性值方法
var flwCode = radioI.getAttribute('flwCode');
var taskId = radioI.getAttribute('taskId');
我只想说这和电脑无关,只和浏览器有关,你这仅仅是 不同浏览器 解析出的dom树不一样而已。。