亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為動態創建的每個子 div 提供唯一 ID?

如何為動態創建的每個子 div 提供唯一 ID?

呼啦一陣風 2021-06-02 14:13:15
該函數使用該slice()方法在動態創建的 div 中單擊時顯示八個元素。我怎樣才能給每個人一個唯一的iddiv?你的建議對我很有幫助。var words = [40];var count = 0;var x = "";function nextElems() {    var newArray = words.slice(count, count + 8);    for (i = 0; i < newArray.length; i++) {        x += '<div class=box>' + newArray[i] + '</div>';        document.getElementById('container').innerHTML = x;    }    x = "";    count += 8;}我試過這個,但它不起作用:var mainDiv = document.getElementById('container');var first = mainDiv.getElementsByTagName('div')[0];first.id = 'one';
查看完整描述

3 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

您可以在文本字符串中使用分配 ID。

以下是您可以做的其他一些事情來改進此代碼:

  1. 將 getElementById 移到循環外

  2. 使用 js 方法而不是字符串連接

像這樣的東西(未經測試):

// get the container

container = document.getElementById('container');


for (i = 0; i < newArray.length; i++)

{

  // create a div

  var div = document.createElement('div');


  // add attributes

  div.setAttribute("id", "box-" + i);

  div.setAttribute("class", "box");


  // create text node

  var textnode = document.createTextNode("This is div #" + i);


  // add text to div

  div.appendChild(textnode); 


  // append to container

  container.appendChild(div); 


}


查看完整回答
反對 回復 2021-06-03
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

您可以在 for 循環中在迭代時直接執行此操作:


for (i = 0; i < newArray.length; i++)


{

    x += '<div id="box-' + i + '"> class="box">' + newArray[i] + '</div>';


    document.getElementById('container').innerHTML = x;


}


查看完整回答
反對 回復 2021-06-03
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

創建時給它id怎么樣?也把class=box像這樣的引號 -> class="box"。


并且在 for 循環之后只添加一次整個 div 構造。因為現在你基本上是多次覆蓋整個事情。


var words = [40];


var count = 0;


var x = "";


function nextElems() {


    var newArray = words.slice(count, count + 8);


    for (i = 0; i < newArray.length; i++)


    {

        // Change class and add custom id

        x += '<div class="box" id="box-'+i+'">' + newArray[i] + '</div>';

    }


    document.getElementById('container').innerHTML = x; // Add divs after for loop


    x = "";


    count += 8;

}

現在每個盒子都有一個唯一的 id,從 box-0, box-1, ... 到 box-n


查看完整回答
反對 回復 2021-06-03
  • 3 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號