我是js和jquery的新手,需要幫助將我的代碼從jquery重寫爲純js。.each()將屬性添加到父從jquery到js
我有幾個父divs。他們每個人都有一個孩子div裏面。
我想添加一個類到子和父類,但父類作爲數據名稱中的一個屬性值。
的類名存儲在數組中,換言之第一個親本和其子會得到一個數組[0]的類名,第二個親本和其子 - 陣列[1]的類名等
我使用這個jQuery這個
$(".back").each(function(i) {
$(this).addClass(tile_array[i]);
$(this).parent().attr("data-name", tile_array[i]);
});
我試圖把它改寫在JS是這樣的:
var backs = document.querySelectorAll('back');
for (let i = 0; i < backs.length; i++) {
for (let j = 0; j < tile_array.length; j++) {
backs[i].classList.add(tile_array[j]);
backs[i].parentNode.setAttribute("data-name", tile_array[j]);
}
}
但是,這是行不通的。我應該如何重寫我的代碼才能正常工作?
在此先感謝!
你有一個錯字 - 缺少類選擇在'querySelectorAll(「返回」)' –
除了錯字@RoryMcCrossan指出,我猜你也別並不希望'tile_array'中的所有東西都被應用到每個單獨的「backs」,所以如果你刪除內部循環並使用'tile_array [i]',你應該有1到1的元素映射到數組中的類,不是嗎? – Dymos
您也不需要第二個'for(let j = 0; j
Satpal