Py学习  »  Jquery

使用js/jquery从附加的选择器选项中获取值

leonardofmed • 5 年前 • 1296 次点击  

我试图从一个附加的带有jquery函数的选择器中获取值。该函数可以很好地处理未附加的主元素,但不会处理附加的元素。

我的代码:

<div id="mainSeparator">
      <div id="newLayer" class="newLayer">        
        <div class="form-row">
          <div class="form-group col-md-6">
            <select class="form-control mySelector" id="selector">
              <option hidden disabled selected value>Select an option</option>
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
            </select>
          </div>
        </div>
        <div class="newDiv"></div>
      </div>      
    </div>

我现在使用的函数是获取值:

$(document).on('change', '.mySelector', function () {
      var str = "";
      $('.mySelector option:selected').each(function () {
        str += $( this ).text();
        $('.newDiv').text(str);
      })
    });

有一个按钮附加了另一个 newLayer 在里面 mainSeparator

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39738
 
1296 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Rory McCrossan
Reply   •   1 楼
Rory McCrossan    6 年前

问题是你总是瞄准目标 $('.mySelector option:selected') . 这只会看到 .mySelector dom中的元素。

从逻辑的上下文来看,您似乎希望查看选定的选项 在内部 这个 select 使 change 事件。因此你需要使用 this find() . 还要注意,更新 .newDiv 循环完成后:

$(document).on('change', '.mySelector', function () {
  var str = "";
  $(this).find('option:selected').each(function () {
    str += $(this).text();
  });
  $('.newDiv').text(str);
});

通过使用 map() :

$(document).on('change', '.mySelector', function () {
  var str = $(this).find('option:selected').map(function () {
    return $(this).text();
  }).get().join('');
  $('.newDiv').text(str);
});