jquery - JQuery获取最接近所选元素的div
问题描述
我的 HTML 标记如下:
<div class="col-xs-6">
<div class="form-group">
<select id="select" class="form-control voip_destination_select">
<option>Select</option>
</select>
</div>
</div>
<div class="col-xs-6 voip_destination_number2">
<div class="form-group">
text
</div>
</div>
然后在 JQuery 中,我正在检查 select 元素中的更改,然后我想找到下一个带有类的 divvoip_destination_number2
$('.voip_destination_select').on('change', function() {
$(this).closest('.voip_destination_number2').next('.voip_destination_number2')
});
更新的 HTML 选项
<div class="col-xs-6">
<div class="form-group">
<select id="select" class="form-control voip_destination_select">
<option>Select</option>
</select>
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<div class="voip_destination_number2">
text
</div>
</div>
</div>
解决方案
你的逻辑很接近,但问题是因为.voip_destination_number2
不是select
引发事件的父级,所以closest()
调用什么也不返回。
要解决此问题,您需要获取最近的父元素,它是 的兄弟.voip_destination_number2
,在这种情况下col-xs-6
,然后使用next()
,如下所示:
$('.voip_destination_select').on('change', function() {
$(this).closest('.col-xs-6').next('.voip_destination_number2').addClass('foo');
});
.foo { color: #C00; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-xs-6">
<div class="form-group">
<select id="select" class="form-control voip_destination_select">
<option>Select</option>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
</div>
<div class="col-xs-6 voip_destination_number2">
<div class="form-group">
text
</div>
</div>
推荐阅读
- r - 查找R中数据框中每3列的平均值
- c++ - Q_INVOKABLE 不向 QML 公开方法
- flutter - ChangeNotifierProvider 与 ChangeNotifierProvider.value
- android - 如何在堆叠垂直条形图中使用 Markerview?
- php - 表单不在引导程序中居中
- python - 尝试使用 web3.py 库在以太坊中调用 balanceOf 函数但出现错误
- ruby-on-rails - Rails:Bootsnap 无法加载
- javascript - json 编码新日期 javascript
- python - 在设定的时间后,使可寻址的 LED 灯条从一种模式转移到另一种模式
- php - 在 Laravel 中间件中访问 $user 变量