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)
<dt>
不是<dd>
的祖先,所以closest()永远找不到它。
尝试:
$(this).parents('dd:first').prev('dt'); // or prev('.category-name')
演示:http://jsfiddle.net/fJkUq/
您还需要关闭<dt>
标签,它们不应该包含<dd>
,而是与它们相邻。