2011-06-24 117 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>的祖先,所以最接近的()將永遠不會找到它。