我想在每个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");
});
怎么样??
答案 0 :(得分:1)
您已经定义了要附加数据的错误选择器。
您已定义<p/>
,但如果要附加到段落(<p>some text</p>
),则必须仅将p
定义为JQuery选择器:$("p").append()
。
example中的HTML中也没有<p>
个标记。
我也认为,你传递错误的论点。
描述你想要做什么。
答案 1 :(得分: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/
*至少,我认为不是。