Bir necha marta div elementiga matn qo'shing

Javascriptni ishlatib, bir xil matnni qayta-qayta bir xil elementga qo'shishni istayman.

<script>
    while(true) {
        var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto + d;
        itstimeto = document.getElementById("duel");
    }
</script>
<div id="duel">IT'S TIME TO </div>

Biroq, div matnga hech narsa qo'shilmasdan, "IT'S TIME TO" matnida qoladi.

Mening yagona tushuntirishim, o'zgaruvchining qayta-qayta takrorlangani.

Har qanday yordamni qadrlaymiz!

1
Infinite loop ko'pmi?
qo'shib qo'ydi muallif j08691, manba
Buni kod snippet bilan ko'rsatish qiyin. ;) Eslatma: Siz nima qilmoqchi bo'lsangiz, bu sahifani hech qachon yuklab bo'lmaydi, hech bo'lmaganda setInterval dan foydalaning, shunda aslida nima sodir bo'lishini ko'rishingiz mumkin.
qo'shib qo'ydi muallif Eric, manba
Ehtimol, itstimeto.innerHTML = itstimeto.innerHTML + d;
qo'shib qo'ydi muallif clarmond, manba

6 javoblar

@Clarmond o'z mulohazalarida aytganidek, ichki matnni olish va qo'shimcha matnni qo'shish uchun itstimeto.innerHTML = itstimeto.innerHTML + d; .

Bundan tashqari, o'zgarmaydiganni bir xil elementga xaritalashdan foydalanishni ham ko'rmayapman.

Sizga kerak bo'lgan skript. O'zingiz ishlayotgan cheksiz pastadir tufayli, siz kodni bajarishingizda jiddiy muammoga olib kelishi mumkinligi haqidagi adolatli ogohlantirish

while(true) {
    var itstimeto = document.getElementById("duel");   
    var d = "D-";
    itstimeto.innerHTML = itstimeto.innerHTML + d;
}
0
qo'shib qo'ydi

Avval cheksiz pastadirni olib tashlang. Koddan keyin ikkinchi foydalanish

while() {
        var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto.innerHTML + d;

    }
0
qo'shib qo'ydi

1.) Change itstimeto.innerHTML = itstimeto + d to itstimeto.innerHTML = itstimeto.innerHTML + d;

2.) Try change while (true) to setInterval, because while is freeze entire page.

Shunday qilib, yakuniy kod shunday ko'rinishi mumkin:

setInterval(function(){ 
var itstimeto = document.getElementById("duel");   
        var d = "D-";
        itstimeto.innerHTML = itstimeto.innerHTML + d;
}, 0);
0
qo'shib qo'ydi

Ushbu qatorlarni olib tashlang:

   var d = "D-";
   itstimeto.innerHTML = itstimeto + d;
   itstimeto = document.getElementById("duel");

Quyidagiga o'zgartirish:

 var d = document.createTextNode('D-');
itstimeto.append(d);

Bular vanilni JS usullari, tushuntirmoqchi emas. Malumot https://developer.mozilla.org/en-US/docs/Web/JavaScript-ni batafsilroq olishingiz mumkin.

0
qo'shib qo'ydi

Try using += in order to concatenate your strings. https://plnkr.co/edit/RPUmE7?p=preview

<button onclick="run()">RUN</button>
  <div id="msg">Hello world!</div>    
// Code goes here

    function run() {
      var finalMessage = [] ;
      var msg = document.getElementById("msg").innerHTML;
      for (var i = 0; i < 20; i++) {
          finalMessage.push(msg + " D- 
"); } document.getElementById("msg").innerHTML = finalMessage.join(''); }
0
qo'shib qo'ydi

itstimeto.innerHTML = itstimeto + d;

ehtimol bo'lishi kerak

itstimeto.innerHTML = itstimeto.innerHTML + d;

0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb