0

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)

4

2 に答える 2

4

<dt>は の祖先ではない<dd>ため、closest() はそれを見つけることはありません。

于 2011-06-24T07:33:29.567 に答える
2

試す:

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

デモ: http://jsfiddle.net/fJkUq/

また、タグを閉じる必要があります。<dt>タグには が含まれているの<dd>ではなく、隣接している必要があります。

于 2011-06-24T07:30:19.617 に答える