每个 $.each.? 附加两个输入

发布于 2024-12-02 23:09:04 字数 424 浏览 3 评论 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");
 });

怎么样!?

示例

I want append two inputs with each key.name_units. this is my code but don't worked true:

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

How is it!?

EXAMPLE

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦途 2024-12-09 23:09:04

您定义了错误的选择器来附加数据。

您已经定义了

,但如果您想附加到一个段落(

some text

),您必须仅将 p 定义为 JQuery 选择器:$("p").append()

示例 中,您的 HTML 中也没有

标记。

我还认为,你传递了错误的论点。

描述你到底想做什么。

You've defined the wrong selector to which data will be appended.

You've defined <p/>, but if you want to append to a paragraph (<p>some text</p>), you have to define just p as JQuery selector: $("p").append().

You also doesn't have <p> tag in your HTML in the example.

I also think, that you pass wrong arguments.

Describe what exactly you want to do.

狼性发作 2024-12-09 23:09:04

使用 .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/

* 在至少,我不这么认为。

To use .each() to iterate over an array or object, you need to use different signatures for the function input. So using function(bu, key) is not right*.

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

Below are two examples using your markup as an example. Note I added a little bit of width to the UL so I could show the indices and values.

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');
});

Which will output:

<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/

* At least, I don't think it is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文