gpt4 book ai didi

javascript - IE8 javascript/jQuery 中的 undefined variable

转载 作者:行者123 更新时间:2023-11-30 10:28:19 25 4
gpt4 key购买 nike

我在使用 IE8 和 jQuery 1.9.1 时遇到一些问题。

目标浏览器为IE8。当我尝试提醒 Angular 色值变量时,我得到一个 undefined variable 。

代码如下:

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 循环,您需要注意这一点;您可能会在对象属性上进行循环迭代,这些属性是对象原型(prototype)的一部分,而不是您想要迭代的实际元素。

发生的事情是它在循环中命中一个不是 DOM 元素的属性,当然,这意味着它没有 .value,所以当您尝试设置来自 .value 的变量,你得到 undefined

要避免这种情况,需要使用.hasOwnProperty()方法来判断循环是否在迭代原型(prototype)方法,避免它们。你需要做这样的事情:

for (var i in obj) {
if (obj.hasOwnProperty(i)) {
.....
}
}

希望对您有所帮助。

关于javascript - IE8 javascript/jQuery 中的 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com