jquery最接近dl元素

时间:2011-06-24 07:20:00

标签: jquery css-selectors closest

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)

2 个答案:

答案 0 :(得分:4)

<dt>不是<dd>的祖先,所以最接近的()永远不会找到它。

答案 1 :(得分:2)

尝试:

$(this).parents('dd:first').prev('dt'); // or prev('.category-name')

演示:http://jsfiddle.net/fJkUq/

您还需要关闭<dt>代码,它们不应包含<dd>,而应与{{1}}相邻。