2013-08-19 2 views
0

мне нужно создать вариант тегов внутри тега выберите с помощью JQuery,Создать HTML-теги с помощью JQuery

это выбрать тег:

<select id="tickets-room" style="height: 20px; width:200px; display: inline-block; margin-top:30px;" onchange="refreshRooms(this.value);"> 
</select> 

Каждый дополнительный тег нужен идентификатор, как 1,2,3 , 4

Каждый тег функции должен получать «resp []. Key» как текст.

Я не знаю, если это имеет смысл, но я не знаю, как объяснить это очень хорошо, это код, который у меня есть с некоторыми из элементов, которые мне нужны. resp.key - это имя, которое мне нужно как текст внутри тегов опций, resp.value - это url, который мне нужно разместить на кнопке вне тега select.

function refreshRooms(city){ 
    $.ajax('/services/tickets/<%= movieId %>?city=' + city).done(
     function(resp){ 
      alert(resp.length); 
      console.log(resp[0].key + " " + resp[0].value); 
     } 
    );  
} 
+0

Использование http://api.jquery.com/append/ – DontVoteMeDown

ответ

2

Использование jQuery.append():

function refreshRooms(city){ 
    $.ajax('/services/tickets/<%= movieId %>?city=' + city).done(
     function(resp){ 
      var sel = $("#tickets-room"); 

      for (var i = 0; i < resp.length; i++) { 
       sel.append('<option value="' + resp[i].key + '">' + resp[i].value + '</option>'); 
      } 
     } 
    );  
} 
+0

Это Approch добавит только первый элемент Ajax запроса. Должен вступать –

+0

@Roger ты прав, мой плохой. – DontVoteMeDown

+0

@Roger Я буду очень признателен, если вы снимете свой downvote сейчас. :-) – DontVoteMeDown

1
function refreshRooms(city){ 
    var jqTickers = $('#tickets-room'); 
    $.ajax('/services/tickets/<%= movieId %>?city=' + city) 
     .done(function(resp){ 
      $.each(resp, function() { 
       jqTickers.append($('<option value="' + this.key + '">' + this.value + '</option>') 
      }); 
     }); 
    });  
} 
1

Вы можете создавать новые элементы, используя следующий синтаксис:

$('<option></option>'); 

Этот элемент, однако, не находится нигде. Он не был добавлен в DOM, поэтому он не отображается. Для этого вам необходимо использовать метод append или метод appendTo. Это будет выглядеть примерно так:

$('#tickets-room').append($('<option></option>').attr({'id':i,'value':resp[i].key}).html(resp[i].key)); 
+0

Спасибо человеку, я использовал его внутри события for и работает очень хорошо, только проблема в том, что мне нужны все возможности очистки, когда я снова вызываю refreshRoom ... Как бы я это сделал? – diogo

+0

'$ ('# ticket-room'). Html ('');' должен делать трюк (вы просто перезаписываете html внутри тега ... ну ... ничего) – Sumurai8

+0

спасибо, я сделал это, используя() .remove(); ... теперь вы можете помочь мне с последним? У меня есть кнопка, которая должна перейти к определенному URL-адресу, указанному resp [i] .value ... возможно ли это? – diogo

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