找到最接近的元素jquery的id

时间:2018-04-04 10:40:48

标签: jquery dom

我的页面中有一个HTML,如下所示

<dl>
<dt>
    <label>Orientation<span class="required">&nbsp;*</span></label>
 </dt>
<dd>
    <select name="options[3323]" id="select_3323">
     <option value="">-- Please Select --</option>
     <option value="9257">Landscape </option>
     <option value="9256">Portrait </option>
   </select> 
   <div class="tagtip-question" id="select_description_3323" style="display:none;"> 
    </div>                                            
</dd>
</dl>

我想基于label元素选择元素的ID属性。如果页面有一个元素并且它包含文本Orientation,则获取下一个select元素的选择元素的ID。

我已尝试过以下代码,但它无效

var element = jQuery("label:contains('Orientation')");
if(element.length == 1){

 alert(element.next('select').attr('id'))

  }

有人在这帮我吗?

2 个答案:

答案 0 :(得分:1)

其实我不知道像<dt><dd>这样的标签,但无论如何你可以使用

alert(element.closest('dt').next('dd').find('select').attr('id'))

答案 1 :(得分:1)

使用.closest()(您已经做过的)转到父级,然后您可以使用.siblings()

alert(element.closest('dt').siblings('dd').find('select').attr('id'))

工作代码段: -

var element = jQuery("label:contains('Orientation')");
if(element.length == 1){
  alert(element.closest('dt').siblings('dd').find('select').attr('id'))
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<dl>
<dt>
    <label>Orientation<span class="required">&nbsp;*</span></label>
 </dt>
<dd>
    <select name="options[3323]" id="select_3323">
     <option value="">-- Please Select --</option>
     <option value="9257">Landscape </option>
     <option value="9256">Portrait </option>
   </select> 
   <div class="tagtip-question" id="select_description_3323" style="display:none;"> 
    </div>                                            
</dd>
</dl>