IE8 javascript/jQuery中未定义的var
Undefined var in IE8 javascript/jQuery
IE8和jQuery 1.9.1有点问题。
目标浏览器是IE8。当我试图提醒角色值var.时,我得到了一个未定义的变量
这是代码:
function get_role(){
var test = document.getElementsByName("admin_role");
for(var elem in test){
if(test[elem].checked){
var rolevalue = test[elem].value;
$.post('<?php echo base_url(); ?>ajaxsc/getrole/',{role:rolevalue},function(result){
$('#roletest').html(result);
});
}
}
**alert('role = ' + rolevalue);**
return rolevalue;
}
问题是for..in
循环正在迭代一些不需要的项。
如果使用for..in
循环,则需要注意这一点;您可能会在对象属性上迭代循环,这些属性是对象原型的一部分,而不是您想要迭代的实际元素。
发生的情况是,它在循环中碰到了一个不是DOM元素的属性,当然,这意味着它没有.value
,所以当你试图从.value
设置变量时,你会得到undefined
。
为了避免这种情况,您需要使用.hasOwnProperty()
方法来确定循环是否在迭代原型方法,并避免它们。你需要做这样的事情:
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
.....
}
}
希望能有所帮助。
相关文章:
- 为什么JavaScript抛出'未捕获的ReferenceError:var未定义'定义var时
- Google Script var获取未定义的值
- 断言var集通过<输入ng模型>不是未定义的
- Javascript requestData未定义,尽管为JSON设置了var
- 使用 Javascript/JQuery 并在页面加载时获取未定义的 var
- winJS 从函数未定义返回 var
- 为什么我需要将“var value = val;”更改为“this.value = val;”,这样我就不会收到“未定义
- JavaScript,jquery中未定义的VAR的问题.如何
- 火狐插件未定义的 var 来自框架
- 未初始化的 var 不应该总是未定义类型
- 是否可以使用 for 循环进行 DRY 量角器测试?*VaR 即将出现未定义*
- 未捕获的错误未定义不是函数 var ajax_url = $('#ajax_url').val();
- IE8 javascript/jQuery中未定义的var
- JavaScript范围问题,嵌套函数中的var访问未定义
- javascript:var仅在IE中未定义
- 无法读取属性'未定义'未定义,但I'我确信var是有效的
- 为什么未定义var检查器
- 无法在方法中设置未定义的属性“var”
- JSLint-'var未定义'由外部脚本文件引起的错误
- Javascript Sharepoint preaveaction总是得到var未定义