1. 程式人生 > >JQ each雙重迴圈出錯

JQ each雙重迴圈出錯

一.雙重迴圈出錯

原因:each方法是非同步的所以內層的迴圈時外層也一樣在迴圈,並不會等待內層迴圈完再執行迴圈

二.替代方法

1)使用for

2)多選框初始化案例

<input type="hidden" id="commTypeNos" name="commTypeNos" value="1,2,3"/>

<label><input name="commTypeNo" type="checkbox" value="1" /><span>蘋果</span></label> 
<label><input name="commTypeNo" type="checkbox" value="2" /><span>香蕉</span></label> 
<label><input name="commTypeNo" type="checkbox" value="3" /><span>梨</span></label> 
<label><input name="commTypeNo" type="checkbox" value="4" /><span>菠蘿</span></label> 
<label><input name="commTypeNo" type="checkbox" value="5" /><span>橘子</span></label> 
var commTypeNos=$("#commTypeNos").val().split(",");
var $input=$("input[name='commTypeNo']");
for(var i=0;i<$input.length;i++){
    var $dom=$($input[i]);
	for(var j=0;j<commTypeNos.length;j++){
        if($.trim($dom.val()) == $.trim(commTypeNos[j])){
            console.log($dom.val()+","+commTypeNos[j]);
            $dom.prop("checked",true);
        }
    }
}