2016-11-27 36 views
1

下面是動態創建的複選框的代碼。如何在代碼中添加換行符,以便每行都有一個複選框?我試圖做document.createElement("br")並在get.appendChild(label)之後附加它,但它不起作用。如何在每個動態創建的複選框之後添加換行符?

function setCheckboxes(browser) { 
    var get = document.getElementById("get"); 

    if (browser == "courses") { 
     for (var i = 1; i < coursesGetKeys.length; i++) { 
      var checkBox = document.createElement("input"); 
      var label = document.createElement("label"); 
      checkBox.type = "checkbox"; 
      checkBox.value = coursesGetKeys[i]; 
      checkBox.name = "r"; 
      label.textContent = setOpt(coursesGetKeys[i], browser); 
      get.appendChild(checkBox); 
      get.appendChild(label); 
      //label.appendChild(document.createTextNode(setOpt(validCoursesKeys[i], dataset))); 
     } 
    } 

    if (browser == "rooms") { 
     for (var i = 1; i < validRoomsKeys.length; i++) { 
      var checkBox = document.createElement("input"); 
      var label = document.createElement("label"); 
      checkBox.type = "checkbox"; 
      checkBox.value = validRoomsKeys[i]; 
      checkBox.name = "r"; 
      label.textContent = setOpt(validRoomsKeys[i], browser); 
      get.appendChild(checkBox); 
      get.appendChild(label); 
      //label.appendChild(document.createTextNode(setOpt(validCoursesKeys[i], dataset))); 
     } 
    } 
}; 

回答

3

你已經知道如何創建一個輸入:

var checkBox = document.createElement("input"); 

,以及如何將其追加:

get.appendChild(checkBox); // get is the parent element you selected at the top of your code 

所以,你的第一直覺是正確的,你也可以這樣做:

var br = document.createElement("br"); 
get.appendChild(br); 

它創建一個br elemen t,然後將它附加到「get」父項。

+0

我應該在哪裏插入換行符?因爲我在for循環的開始和結束時嘗試了它,它似乎沒有做我想做的事。 – stumpylumpy

+1

在每個for循環結束時。有兩個語句可以執行'appendChild'。那之後我會把這兩條線放在一起。瀏覽器控制檯中是否有任何錯誤消息? – amenthes

+0

啊,謝謝。它現在有效。我只在循環外部創建了一個br變量,然後試圖在循環中反覆使用它,所以它只是將分行應用到最後一個元素! – stumpylumpy