JQuery ближайший элемент DL - PullRequest
0 голосов
/ 24 июня 2011

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 ]

4 голосов
/ 24 июня 2011

<dt> не является предком <dd>, поэтому ближайший () никогда не найдет его.

2 голосов
/ 24 июня 2011

Попробуйте:

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

Демонстрация: http://jsfiddle.net/fJkUq/

Вам также необходимо закрыть теги <dt>, они не должны содержать <dd>, но примыкают к ним.

...