Rumah  >  Soal Jawab  >  teks badan

Sambungkan gelung mesej JS dalam pengepala HTML

<p>Saya telah cuba membuat gelung mesej yang berubah setiap jam (hanya memaparkan satu demi satu), saya ok dengan HTML tetapi tidak begitu baik dengan JS. (Mesej hendaklah diletakkan dalam teg h3)</p> <p>Saya cuba memautkan gelung JS saya ke dalam elemen teks HTML tetapi gagal. </p> <p> <pre class="brush:js;toolbar:false;">h3 = document.createElement("h3"); var messages = "Mesej 1", "Mesej 2", "Mesej 3", "Mesej 4", "Mesej 5", "Mesej 6"; pembilang var = 0; fungsi myLoop() { setTimeout(myLoop, 3, 600, 000); document.getElementById("Mesej") document.body.appendChild(h3); } myLoop();</pre> <pre class="brush:html;toolbar:false;"><h3> <h3 id="Mesej"></h3> </h3></pre> </p>
P粉731861241P粉731861241432 hari yang lalu503

membalas semua(1)saya akan balas

  • P粉239089443

    P粉2390894432023-09-06 09:59:38

    1. Jangan bungkus tajuk anda dengan tajuk
    2. Nampaknya anda mahukan bersusun mesej. Saya tunjukkan di bawah cara membuat tatasusunan sedemikian
    3. Tidak perlu menggunakan appendChild apabila elemen sudah wujud pada halaman
    4. 3,600,000不是有效的毫秒数。使用360000060*60*1000

    Dalam kod saya, saya menggunakan eventListener untuk menunggu elemen html pada halaman tersedia sebelum melaksanakannya

    Pernyataan (counter++)%len akan bermula dari 0, gunakan Baki (counter++)%len将从0开始,使用余数运算符%在消息数组的长度处进行循环。它避免了if (counter=> length) counter = 0; pengendali % gelung sepanjang panjang tatasusunan mesej. Ia mengelakkan jika (counter=> length) counter = 0;

    => ialah fungsi anak panah, dibina seperti berikut

    const functionName (parameter) => { };

    Setara secara fungsional dengan (dan beberapa perkara lain)

    function functionName(parameter) { };

    Jika anda perlu melaksanakannya setiap jam, sila tukar 2000 kepada 3600000

    const messages = ["Message 1", "Message 2", "Message 3", "Message 4", "Message 5", "Message 6"];
    const len = messages.length;
    let counter = 0;
    
    window.addEventListener("DOMContentLoaded", () => { // 当页面加载完成且h3可用时
      const h3 = document.getElementById("Message");
      const myLoop = () => h3.textContent = messages[(counter++) % len]; // 循环并包装
      myLoop(); // 立即执行一次
      setInterval(myLoop, 2000); // 然后每2秒执行一次
    });
    <div>
      <h3 id="Message"></h3>
    </div>

    balas
    0
  • Batalbalas