嵌套循環遍歷數據並嘗試選中匹配元素,但最終只有一個被選中。代碼未貼出,但根據經驗,常見原因如下。
// 錯誤:每次循環重新賦值,只保留最後一次
$('.target').removeClass('selected');
$('.target[data-id="' + id + '"]').addClass('selected');
// 正確:累加或使用多選擇器
var selector = [];
innerLoop:
selector.push('[data-id="' + id + '"]');
$(selector.join(',')).addClass('selected');
for (var i=0; i
若數據動態渲染,循環執行時目標元素不存在。需在渲染完成後(如 setTimeout、Promise、回調中)執行選中邏輯。
檢查 data-id、id 是否唯一、類型一致(字符串 vs 數字)。
console.log('當前索引:', i, j, '選擇器:', selector)。console.log($(selector).length) 應大於 0。雙層循環「只選中一個」通常源於選擇器覆蓋、閉包變量捕獲錯誤、或 DOM 未就緒。逐步輸出調試、使用 let 解決閉包、確保渲染後操作,多數情況可解決。若仍無果,需提供最小可復現代碼片段。