首页 新闻 会员 周边

jquery 数组遍历

1
悬赏园豆:5 [已关闭问题] 关闭于 2013-01-16 17:36

jquery遍历数组 each的使用 怎么return不了,他还会继续执行下边的操作,跳到一般处理程序。

阿连的主页 阿连 | 初学一级 | 园豆:136
提问于:2011-08-01 10:57
< >
分享
所有回答(2)
0

注意传入的第一个参数可以是数组或者对象.如果数组,则遍历数组中的每一个对象. 第一个参数表示索引,第二个参数表示值, this表示当前遍历的元素, 可以通过返回false终止迭代, 比如下面的示例遍历到第二个元素后会终止:

$.each(["a", "b", "c"], function(i, n)

                {
                   alert("Item #" + i + ": " + n);//可以获取到i值
                    if (i >= 1)
                    {
                        return false;
                    }
                });
  
            $("#iterateArray").click(function(event)
            {
                var array = $.each(["a", "b", "c"], function(i, n)
                {
                    alert("Item #" + i + ": " + n ); //第一个参数i表示索引, this表示当前遍历的对象
                    if (i >= 1)
                    {
                        return false;
                    }
                });
            });
杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-01 11:24
还没找出原因,最后用for循环解决了
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 09:28
能否把你开始写的each 看哈
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 09:50
function btnResourceTypeChange(name) {
var typeIds = GetSelectCheckboxValue(name);
if (typeIds != "") {
var types = typeIds.split(',');
$.each(types, function (n, value) {
// 验证资源分类
if (value == 1) {
if ($("#ddl_r_m_type").val() == "-1") {
alert("请选择您要重归类的资源类型!");
return;
}
}
// 验证资源参数条件
if (value == 2) {
if ($("#ddl_r_m_brandname").val() == "-1" || $("#ddl_r_m_factoryname").val() == "-1" || $("#ddl_r_m_modelname").val() == "-1" || $("#ddl_r_m_period").val() == "-1") {
alert("请选择您要重归类的参数!");
return;
}
}
// 验证资源系统
if (value == 3) {
if ($("#ddl_r_m_system").val() == "-1") {
alert("请选择您要重归类的系统!");
return;
}
}
}); $('#ResourceTypeChange').attr('disabled', "false");
var params = "Action=ChangeResourceType&newtypeid=" + $("#ddl_r_m_type").val() + "&resourceids=<%=resourceids %>&typeIds=" +
typeIds + "&brandid=" + $("#ddl_r_m_brandname").val() + "&factoryid=" + $("#ddl_r_m_factoryname").val() + "&modelid=" +
$("#ddl_r_m_modelname").val() + "&periodid=" + $("#ddl_r_m_period").val() + "&systemid=" + $("#ddl_r_m_system").val() + "&brandname="
+ $("#ddl_r_m_brandname").find("option:selected").text() + "&factoryname=" + $("#ddl_r_m_factoryname").find("option:selected").text() + "&modelname=" +
$("#ddl_r_m_modeln
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 10:56
return是不是只跳出了each呀
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 11:48
对,然后它就继续执行each外边的操作,并不是return返回到页面。
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 13:55
return 是返回当前函数 对吧
$.each(types, function (n, value) {
这儿代码里返回的 是返回这个function
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 14:50
哦 明白了 那看来我这种验证用each是真没戏了
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 16:46
你可以在each上面声明一个bool变量 在return之前 赋值为false
然后 与each平级外 进行判断 如果为false 就return 否则继续执行
这种方法 你试试
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-03 17:03
不行
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 18:00
你试过
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-04 08:39
只要你值赋到了 就可以了
你直接在each执行完得下一句 直接加上return 看return能否有效
支持(0) 反对(0) 杯具程序员 | 园豆:1718 (小虾三级) | 2011-08-04 08:42
我真的失败了 没实现
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-08 14:10
0

跳到一般处理程序 不就是跳出出去了吗

慧☆星 | 园豆:5640 (大侠五级) | 2011-08-01 14:17
对,本应该判断不符合,return的,结果它又执行下边操作,跳到一般处理程序了
支持(0) 反对(0) 阿连 | 园豆:136 (初学一级) | 2011-08-03 09:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册