2013-06-15 2 views
1

Я writed этот Jquery код:Вставка динамического параметра в выбранном теге, используя Jquery

$(document).ready(function(){ 
    $(document).on('change', '.prova > .target', function() { 
    $('div').removeClass('prova'); 
    $(this).parent().after($('<br>'), $('<div>', {"class": 'prova'}).append(
     $('<select>', {"class": 'target'}).append(  
      $('<option>', {value: 'option1', text: 'Option 1'}), 
      $('<option>', {value: 'option2', text: 'Option 2'})  
      ),$('<input>', {type: 'number', style: 'width: 35px', min: '1', max: '99', value: '1'}), 
     $('<button>', {type: 'button' , "class": 'remove_item', text: 'delete' }))); 
    });  
}); 

Полный пример here

Цель моего кода заключается в следующем:

Каждый раз новый параметр выбирается из <select> (только последний), создается новый <select>.

Теперь я хочу добавить вместо статической опции, добавленной из кода jquery, динамическую опцию. Например, предположим, что у меня есть

var obj = { 
    "option1": "Option 1", 
    "option2": "Option 2" 
}; 

Как я могу интегрировать в моей JQuery кода параметры, перечисленные выше, вместо статической вставки:

... 
$('<option>', {value: 'option1', text: 'Option 1'}), 
$('<option>', {value: 'option2', text: 'Option 2'}) 
... 
+0

Это какой-то странно выглядящий код? class является зарезервированным ключевым словом и должен указываться при использовании в таких объектах и ​​почему вы устанавливаете класс в элементе BR? – adeneo

+0

Спасибо @adeneo за ваши предложения – GVillani82

ответ

1

Вы можете сделать это:

var $mySelect = $('<select>', { 
    class: 'target' 
}); 
$.each(obj, function (val, text) { 
    $mySelect.append($('<option />', { 
     value: val, 
     text: text 
    })); 
}); 
var $input = $('<input>', { 
    type: 'number', 
    style: 'width: 35px', 
    min: '1', 
    max: '99', 
    value: '1' 
}); 

var $button = $('<button>', { 
    type: 'button', 
    class: 'remove_item', 
    text: 'delete' 
}); 

$(this).parent().after($('<br>', { 
    class: 'acapo' 
}), $('<div>', { 
    class: 'prova' 
}).append($mySelect, $input, $button)); 

FIDDLE DEMO

+0

Спасибо @Palash. Я знаю это, но я не могу интегрировать этот код в свой код jQuery – GVillani82

+0

@ Joseph82: см. Обновленный ответ и демонстрацию :) –

+1

Спасибо @Palash :) – GVillani82

Смежные вопросы