首頁  >  問答  >  主體

無法在HTML集合上使用foreach循環

<p>我有兩個文件,一個是js文件:</p> <pre class="brush:php;toolbar:false;">const a = document.getElementsByTagName("body")[0]; const d = a.getElementsByTagName("h1"); d.forEach(element => { element.innerHTML = "文字已更改"; });</pre> <p>還有一個是html檔:</p> <pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html lang="en"> <head> <title>David </title> </head> <body> <h1>你好1</h1> <h2>大衛</h2> <h3>亞裡爾</h3> <h4>雅哈夫</h4> <h1>你好2</h1> <h1>你好3</h1> <script src="food.js"></script> </body> </html></pre> <p>我試圖將每個h1元素的文本更改為相同的文本,但是它沒有起作用,也就是說當我在瀏覽器上運行時,所有的"h1"文本仍然保持不變。 </p> <p>不確定為什麼,因為"d"是一個html集合,我用foreach在它上面運行。 </p> <p>基本上一切都很簡單,所以不確定我可以嘗試什麼。 </p> <p>感謝任何幫助! </p>
P粉930534280P粉930534280417 天前488

全部回覆(1)我來回復

  • P粉864594965

    P粉8645949652023-08-30 00:31:40

    你不應該使用forEach,因為HTMLCollections沒有實作forEach方法。

    使用for迴圈

    const a = document.getElementsByTagName('body')[0]
    const d = a.getElementsByTagName('h1')
    
    for (let elem of d) {
        elem.innerHTML = '新文本'
    }

    回覆
    0
  • 取消回覆