我的页面中有一个HTML,如下所示
<dl>
<dt>
<label>Orientation<span class="required"> *</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'))
}
有人在这帮我吗?
答案 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"> *</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>