2017-07-02 90 views
0

我的代碼:Javascript Array.from(...).for for each assignment?

Array.from(document.querySelectorAll("[id^='MTG_INSTR$']")).forEach(el => { 
    el.textContent = "Test"; 
}); 

這將通過值傳遞,並不會令從我讀過的分配。

Array.from(document.querySelectorAll("[id^='MTG_INSTR$']")).forEach(el => 
{ 

    arr[index].textContent = "test"; 
}); 

應於每個元素的引用和應該工作。但事實並非如此。是否因爲我創建的數組是未命名的,因此我無法輕易識別它?

我的問題 - 爲什麼沒有第二個版本的工作?它不會在我的chrome腳本上做任務,即使我知道它正在執行。我所在的頁面沒有顯示任何更改,但每個以MTG開頭的元素都應將其文本內容更改爲「test」。

它不是。爲什麼?

編輯:
事情是這樣的:

Array.from(document.querySelectorAll("[id^='MTG_INSTR$']"))[0].textContent 

評估,以文字,所以我知道的語法是固體至少。

+0

沒有得到你的問題在這裏 –

+0

@ Mr.Alien發佈的問題作了明確規定。我只是想知道爲什麼在我的腳本中,第二個代碼塊不會改變頁面上的任何內容。我發佈的那個編輯,當我將它分配給像...... [0] .textContent =「tessst」這樣的文本時,文本就會改變。 (至少在頁面中的控制檯上) – Kevin

+0

按照所有標準,第一個應該可以正常工作......您是否收到任何錯誤? –

回答

1

這應該做工精細

Array.from(document.querySelectorAll("[id^='MTG_INSTR$']")).forEach(el => { 
    el.textContent = "Test"; 
}); 

第二個應該是

Array.from(document.querySelectorAll("[id^='MTG_INSTR$']")).forEach((el,index,arr) => 
{ 

    arr[index].textContent = "test"; 
});