首页新闻找找看学习计划

为什么下面取值失败,只是某一台电脑,其他所有电脑正常

-2
悬赏园豆:10 [已解决问题] 解决于 2017-10-19 17:12


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;---取值失败

问题补充:

alert(flwCode);
alert(taskId);

的时候是空

提示:undefined

luoshifu的主页 luoshifu | 初学一级 | 园豆:80
提问于:2017-10-10 11:27
< >
分享
最佳答案
0

非标准属性不能直接用.号取,有的浏览器并不兼容,常规属性用.号取没问题。

你自己虽然已经解决,但即使是使用getAttribute也不一定兼容所有的浏览器,更具体的说是getAttribute某些特定的属性在不同的浏览器里可能不同,比如getAttribute javascript的事件,如:getAttribute("onclick")。

你的学习方法没有问题,把这些原生的javascript先学会了,后面可以学jquery,它能帮我们很好的处理兼容性问题。

收获园豆:10
陈子 | 菜鸟二级 |园豆:241 | 2017-10-11 00:38
其他回答(4)
0

for循环少了花括号,而且for循环中,你的radiol一直是取到fadios最后一个的值。不是一个新的数组,自然你下面的取值是失败的。

业界灬小白 | 园豆:228 (菜鸟二级) | 2017-10-10 12:02

不是没有花括号,是下面代码太多,没有必要放上来,而且,看清楚,是单独一台电脑的所有浏览器这样,其他所有电脑所有浏览器正常

支持(0) 反对(0) luoshifu | 园豆:80 (初学一级) | 2017-10-10 12:42
0

单独一台的话更多的可能是该连接服务器,也许是浏览器版本问题,也许是卡顿了,或者这台机器被做了什么限制?

北方姆Q | 园豆:856 (小虾三级) | 2017-10-10 14:14

电脑的问题,但是不知道是啥问题啊?????

支持(0) 反对(0) luoshifu | 园豆:80 (初学一级) | 2017-10-10 14:32

@luoshifu: 你可以先看下这台机器的浏览器跟别的机器的,再看看你服务器上有没有对这台机器做限制,然后直接在这台机器上执行你的代码看看能不能取到

支持(0) 反对(0) 北方姆Q | 园豆:856 (小虾三级) | 2017-10-10 14:34
0

问题解决:

<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');

luoshifu | 园豆:80 (初学一级) | 2017-10-10 15:20
0

我只想说这和电脑无关,只和浏览器有关,你这仅仅是 不同浏览器 解析出的dom树不一样而已。。

Постой! | 园豆:809 (小虾三级) | 2017-10-10 15:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册