добавить два ввода с каждым $ .each. - PullRequest
0 голосов
/ 03 сентября 2011

Я хочу добавить два входа с каждым 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");
 });

Как это !?

ПРИМЕР

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Вы указали неправильный селектор, к которому будут добавляться данные.

Вы определили <p/>, но если вы хотите добавить абзац (<p>some text</p>), вам нужно определитьпросто p как селектор JQuery: $("p").append().

У вас также нет тега <p> в вашем HTML в примере .

Я тоже думаю, что вы передаете неправильные аргументы.

Опишите, что именно вы хотите сделать.

0 голосов
/ 03 сентября 2011

Чтобы использовать .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/

* По крайней мере, я так не думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...