JQ each雙重迴圈出錯
阿新 • • 發佈:2018-12-03
一.雙重迴圈出錯
原因: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); } } }