2012-08-08 58 views
0

如何在jquery 中選擇一個「this」的子div,然後在其上應用切換, ,同時禁用處理點擊事件的鏈接效果?如何在jQuery中選擇一個小孩的div divc的

下面是HTML:

<a href="#" class="title">Link</a> 
<div class="data"> content here </div> 
<a href="#" class="title">Link</a>  
<div class="data"> 
    content here 
</div> 

這裏是我的jQuery代碼:

$('a.title').each(function(event){ 

    var selection = $(this).find('.data'); 

    $(this).click(function(event){ 
     $(div).toggle(); 
     event.preventDefault(); 
    }); 
}); 

我改成了這一點,它的工作:

$('a.title').each(function(){ 
    $(this).click(function(event){ 
     var selection = $(this).parent().children('.data'); 
     $(selection).toggle(); 
     event.preventDefault() 
    }); 
}); 
+0

我想念類型應該是event.preventDefault(); – ARGO 2012-08-08 06:02:05

+2

您可以編輯您的問題。 – jeff 2012-08-08 06:02:35

+1

'$(this).find('。data')'不會在你的'each'循環中工作,因爲'div'超出了'a.title'的範圍 – coolguy 2012-08-08 06:04:43

回答

1

你喜歡soemthing後這

http://jsfiddle.net/pVKcm/1/

$('a.title').click(function(event){ 
      event.preventDefault(); 
    $(this).next('.data').toggle(); 
});​ 
+0

有趣?爲什麼我的答案得到-1,任何原因 – 2012-08-08 06:12:15

+0

謝謝你這個人是我需要一個,雖然我finf第二個鏈接不工作我調整了一下,它的工作原理: – ARGO 2012-08-08 06:14:56

+0

我很高興它有幫助。乾杯! – 2012-08-08 06:23:17

2

事情是這樣的:

$('a.title').click(function(event){ 

    var $selection = $(this).next('.data'); 
    event.preventDefault(); 
    $selection.toggle();    

}); 
0

你並不需要使用each()功能,jQuery的事件適用於所有匹配的元素。此外,您的div元素不是您的a元素的子元素。要選擇下一個div元素,但是,你可以使用next()功能:

$('a.title').click(function(event){ 
    var selection = $(this).next('.data'); 
    selection.toggle(); 

    event.preventDefault();  
}); 
2
$('a.title').on('click', function(e){ 
    e.preventDefault(); 
    $(this).next('.data').toggle(); 
});​ 
+0

@AK - 我認爲這是一個高質量的答案,完全回答這個問題,但我我不確定你的意思是「全面的」。這是最短的答案(當然不一定是壞的),並且不提供對代碼的解釋。 – jeff 2012-08-08 06:15:53

+0

它應該是非常自我解釋的,如果不是很好[API ](http://docs.jquery.com/Main_Page)在jQuery網站上,OP可以讀取有關所有不同功能的內容,直到他的眼睛水漲爲止。 – adeneo 2012-08-08 06:22:17

+0

我知道,我不想侮辱你的答案。任何方式。「綜合」只是sou對我來說就像是一個可憐的/令人困惑的詞選擇。 – jeff 2012-08-08 06:24:41