2017-05-15 23 views
0

我正在做一些代碼,我需要將標籤附加到div然後將其附加到正文。JQuery將元素附加到div

我運行程序和我看到的div被創建,但標籤不能附着到div:

這裏是我的代碼

var divName = "div-isoparameters"; 

function createComponents() { 
    createDiv(); 
    createLabels(divName); 
} 

function createDiv() { 
    var $div = $('<div />').appendTo('body'); 
    $div.attr('id', divName); 
    $div.attr('class', divName); 
    $div.css("display","block"); 
} 

function createLabels(divName) { 
    for (var i = 0; i < 10; i++) { 
     var $label = $("<label>").text("label something: "); 
     //Create the input element 
     var $input = $('<input type="text">').attr({ id: 'something', name: 'something' }); 

     //Insert the input into the label 
     $input.appendTo($label); 

     $(divName.id).append($label); 
    } 
} 

我不知道我做錯了什麼由於我追加DIV的身體,然後我的所有標籤附加到div

回答

1

您的問題是在代碼的最後一行:

 $(divName.id).append($label); 

不是你如何選擇由ID項。如果您知道商品ID,請在jQuery中選擇一個#字符作爲ID。

例如,如果DIV具有labelHolder一個id:

$('#labelHolder').append($label); 

所以,你有兩個選擇:

可手動前面加上十字線:

$('#' + divName).append($label); 

或者,您也可以通過調用document.getElementById(...)來檢索元素。這是我的首選,因爲它更清楚你在做什麼。

$(document.getElementById(divName)).append($label); 
+0

當人們補充/猜測語法時,總是讓我震驚,然後問爲什麼它不起作用。 –

+1

@安德魯謝潑德謝謝你的時間和你的解釋。你的回答確實對我有幫助。這是我第一次使用jquery或任何其他js框架,你的解釋解決了這個錯誤和我的其他人 – Joseph

0
$("#"+divName).append($label); 

你忘了在格名稱添加#。我還刪除了.id,因爲您已經通過了div-isoparameters的ID名稱。基本上你會得到DOM $("#div-isoparameters")