2011-09-03 28 views
0

我想追加兩個輸入與每個key.name_units。這是我的代碼,但沒有成功:

$.each(ok, function (bu, key) { 
    $("<p/>").append(key.name_units, $("<input/>", { 
     type: "text", 
     Name: "a[]" 
    }), $("<input/>", { 
     type: "text", 
     name: "a[]" 
    })).appendTo(".list"); 
}); 

這是怎麼回事!?

EXAMPLE

+1

你需要更好地解釋你正在嘗試做什麼 – bcoughlan

+1

我不認爲賽琳娜英語說得很好,所以試着看例子小提琴。 –

+0

相關問題(以某種方式,我認爲):http://stackoverflow.com/questions/7291898/problem-in-use-of-each –

回答

1

您已經定義了錯誤的選擇,其數據將被追加。

您已經定義<p/>,但如果你要附加到一個段落(<p>some text</p>),你必須定義只是p爲jQuery選擇:$("p").append()。您的HTML中沒有<p>標記example

我也認爲,你通過錯誤的論點。

描述你想要做什麼。

0

要使用.each()遍歷數組或對象,需要爲函數輸入使用不同的簽名。所以使用function(bu, key)是不對的*。

function(index, value) <<< Array 
function(key, value) <<< Object 

下面是以您的標記爲例的兩個示例。注意我在UL上添加了一點寬度,所以我可以顯示索引和值。

var ok = [1,2,3]; 

$('.list li').remove(); 

$.each(ok, function(index, value){ 
    $('<li>"key.name_units ('+index+', '+value+')" '+ 
     '<input type="text" name="out[]">'+ 
     '<input type="text" name="out[]">'+ 
     '</li>').appendTo('.list'); 
}); 

ok = { 
    four: '4', 
    five: '5', 
    six: '6' 
}; 

$.each(ok, function(key, value){ 
    $('<li>"key.name_units ('+key+', '+value+')" '+ 
     '<input type="text" name="out[]">'+ 
     '<input type="text" name="out[]">'+ 
     '</li>').appendTo('.list'); 
}); 

將輸出:

<li>"key.name_units (0, 1)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 
<li>"key.name_units (1, 2)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 
<li>"key.name_units (2, 3)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 
<li>"key.name_units (four, 4)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 
<li>"key.name_units (five, 5)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 
<li>"key.name_units (six, 6)" <input name="out[]" type="text"><input name="out[]" type="text"></li> 

http://jsfiddle.net/userdude/SXXee/1/

*至少,我不認爲它是。