javascript - 如何使用类选择器根据其同级选择的更改事件更新标签

标签 javascript jquery

我必须使用许多具有相同选项的选择元素。我必须添加一个 on chage 事件监听器,它将监听这些类似选择中的任何更改。但我只想更新作为实际同级的标签select 实际上使用类选择器而不是 id 更改了其选项。不知何故,我找出了实际更改其选项的 select 的 id。但是,更改事件正在更新两个标签。这对我来说太棘手了。记住我是将使用太多的选择来监听相同的事件。所以我无法使用 id 选择器。请帮忙。

$('.p-select').on('change', function() {
   //alert(this.id);
  var eid = "#"+this.id+"";
  alert('eid: '+eid);  
  $(eid).siblings(".p-label").html($(".p-select option:selected").text());
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <label class="p-label"></label>
<select class='p-select' id="s1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 
</div>

<div>
<label class="p-label"></label>  
<select class='p-select' id="s2">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 
</div>  
  

最佳答案

在获取selected选项的文本以及选择.sibling()元素时,使用当前元素上下文,即this

$('.p-select').on('change', function () {
    $(this).siblings(".p-label").html($("option:selected", this).text());
    //$(this).prev(".p-label").html($("option:selected", this).text());    
    //$(this).closest('div').find(".p-label").html($("option:selected", this).text()); 
});

$('.p-select').on('change', function() {
  $(this).siblings(".p-label").html($("option:selected", this).text());  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <label class="p-label"></label>
<select class='p-select' id="s1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 
</div>

<div>
<label class="p-label"></label>  
<select class='p-select' id="s2">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 
</div>

关于javascript - 如何使用类选择器根据其同级选择的更改事件更新标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001363/

相关文章:

javascript - HighCharts 共享工具提示数字格式

javascript - 将 JSON 转换为 Javascript 中的 map 列表

javascript - TypeScript - 将多个接口(interface)组合成一个

javascript - 如何在 JavaScript 中为弹出窗口中的搜索栏着色?

Javascript 表单提交验证不起作用

javascript - 如何从文本框中读取日期,使用 Jquery UI DatePicker

javascript - 如何在 Javascript 中访问 helper for 循环函数中的迭代器

javascript - 如何让 if/else 语句在函数内部工作

javascript - 如何在 Jquery UI slider 中获取幻灯片上的索引号

javascript - 将可排序的 jQuery 顺序发送到 Laravel Controller