HTML:
<dl id="feature-list">
<dt id="basic" class="category-name">
<dd id="basic-toggle" class="category-recepient">
<div class="feature">
<div class="feature-content">
<input id="checkbox1" type="checkbox">
</div>
</div>
</dd>
<dt id="options" class="category-name">
<dd id="options-toggle" class="category-recepient">
<div class="feature">
<div class="feature-content">
<input id="checkbox2" type="checkbox">
</div>
</div>
</dd>
</dl>
JQUERY
$('input').change(function () {
var value = $(this).closest("dt");
//do something with value.id
});
$(this).closest("dt")
会返回复选框,而不是<dt id="(category)" class="category-name">
我尝试了$(this).closest(.category-name)
,$(this).closest("dt").find(.category-name)
答案 0 :(得分:4)
<dt>
不是<dd>
的祖先,所以最接近的()永远不会找到它。
答案 1 :(得分:2)
尝试:
$(this).parents('dd:first').prev('dt'); // or prev('.category-name')
您还需要关闭<dt>
代码,它们不应包含<dd>
,而应与{{1}}相邻。