2011-06-24 80 views
0

HTML:jQuery的最接近DL元素

<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")返回checkbox,而不是<dt id="(category)" class="category-name">

我试过$(this).closest(.category-name)$(this).closest("dt").find(.category-name)

回答

2

尝试:

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

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

您还需要关闭<dt>标签,它们不应该被包含<dd>,但与之相邻。

+0

刚刚完成我的答案。你的回答让我感到困惑,因为它与我要发布的内容几乎完全相同。 –

+0

@Kerry:用'

'笔记和所有? :) –

+0

确实!尽管我没有jsfiddle链接。荣誉;) –

4

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