JQuery узкий выбор в динамически создаваемых элементах - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть некоторый html-код Select / Option, сгенерированный динамически с помощью perl.Я использую JQuery для отображения значения для каждого параметра в div ниже.Мой вопрос заключается в том, как сузить выбор JQuery до каждого тега выбора?Теперь у меня есть все теги.

function changeDesc() {

  var selectionValue = $('.RandomDiv > fieldset > legend > select').val();
  $('.RandomDiv > fieldset > div').html(selectionValue);
}

$('.RandomDiv > fieldset > legend > select').each(function () {
$(this).change(changeDesc); });

Я не могу добавить идентификатор ко всем тегам, поскольку они генерируются динамически, и их может быть много.Я новичок в JQuery, и я уверен, что ответ, который я ищу, может быть не таким сложным, но я просто не могу его получить.Спасибо

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Попробуйте это.

function changeDesc() {
   //Here this will point to the select element which triggered change event
   $('.RandomDiv > fieldset > div').html($(this).val());
}

$('.RandomDiv > fieldset > legend > select').change(changeDesc);

Вместо отдельной функции вы можете использовать анонимную функцию, подобную этой, а также вы можете использовать метод closest, чтобы найти включающий элемент fieldset и найти его дочерний элемент div.

$('.RandomDiv > fieldset > legend > select').change(function() {
   //Here this will point to the select element which triggered change event
   var $this = $(this);
   $this.closest('fieldset').children('div').html($this.val());
});
0 голосов
/ 01 февраля 2012

Это:

function displayDesc() {
  var classSelectionValue;
  classSelectionValue = $('.ClassDescriptionDiv > fieldset > legend > select').val();
  $('.ClassDescriptionDiv > fieldset > div').html(classSelectionValue);
}

должно быть:

function displayDesc() {
  var classSelectionValue = $(this).val();
  $(this).closest("fieldset").children("div").html(classSelectionValue);
}
...