2014-05-15 92 views
0

我想要得到的ID或類,如果鏈接按鈕被點擊如何獲得DIV ID JQUERY

<div class="pane alt" id="a"> 
<h3>Nick says:</h3> 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi malesuada 
<p><a href="#" class="btn-delete">Delete</a> <a href="#" class="btn-unapprove">Unapprove</a> <a href="#" class="btn-approve" style="display:none">Approve</a> 

我創建處理點擊的按鈕的代碼是這其中,導致「未定義「

$('.btn-unapprove').click(function(){ 

    var id = $(this).attr('id'); 
    alert(id); 

}); 

因此,如果鏈接被點擊,有可能得到div ID嗎?如果是的話該怎麼做呢?

+1

使用這個:'VAR ID = $(本).closest( '窗格 ')ATTR(' 身份證'); ' – Joe

+0

我試圖使用.closest(),但它似乎不會工作,當我在瀏覽器上嘗試它警告不會彈出(甚至不明確)和其他功能似乎不運行。有人可以幫忙嗎? –

+0

爲了達到性能目的,使用'prop'而不是'attr'來表示這樣一個活動屬性。 – lib3d

回答

2

首先:你應該糾正你的HTML。因爲如果你的HTML沒有正確加載DOM比Jquery/Javascript還沒有提供正確的結果。

在你的HTML你缺少一些關閉標籤一樣 - 「</p>, </div>

<div class="pane alt" id="a"> 
    <h3>Nick says:</h3> 
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi malesuada</p> 
    <p> 
    <a href="#" class="btn-delete">Delete</a> <a href="#" class="btn-unapprove">Unapprove</a> 
    <a href="#" class="btn-approve" style="display:none">Approve</a> 
    </p> 
</div> 

有幾種方法可以做到完成這一任務。

您可以使用jQuery .closest()

$('.btn-unapprove').click(function(){  
    alert($(this).closest('div.pane.alt').attr('id')); 
}); 

Wokring Example

您可以使用jQuery .parents()

$('.btn-unapprove').click(function(){  
    alert($(this).parents('.pane.alt').attr('id')); 
}); 

Wokring Example

您可以使用jQuery .parent()

$('.btn-unapprove').click(function(){  
    alert($(this).parent().parent().attr('id')); 
}); 

Working Example

+0

非常感謝你親愛的先生,我不知道爲什麼最接近()不會爲我工作,但父母()工作像魅力。歡呼 –

+0

@Apollo麗城:你的歡迎:) –

0

使用.closest() jQuery中

$('.btn-unapprove').click(function(event){ 
    event.preventDefault(); 
    var id = $(this).closest('div.pane').attr('id'); 
    alert(id); 
}); 
0

您對按鈕元件沒有任何標識。如果你設置它,你的代碼將開始工作。

要獲得容器的ID使用的代碼

var id = $(this).closest('.pane').attr('id'); 

的 '點擊' 功能裏面。

0

Demo

使用closest()

$('.btn-unapprove').click(function(){ 

     var id = $(this).closest('.pane.alt').attr('id'); 
     alert(id); 

    }); 
0
var id = $(this).parents('.pane').attr('id'); 
+0

你怎麼能通過這個ID到PHP(代碼點火器) – ralphgabb

1
This will help you to work done. Before doing this please correct your code and improve like following. In your code you didn't close the <p> tags. 

I suggest don't use anchor tags there go with **fake-link** using <span>.. 

參見:How to make an anchor tag refer to nothing?

<div class="pane alt" id="a"> 
<h3>Nick says:</h3> 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi malesuada</p> 
<p> 
<a href="#" class="btn-delete">Delete</a> 
<a href="#" class="btn-unapprove">Unapprove</a> 
</p> 
</div> 

的jQuery:

jQuery(document).ready(function(){ 

    jQuery('.btn-unapprove').click(function(){ 
     alert(jQuery(this).closest('div').attr('id')); 
    }); 

});