2013-08-23 114 views
0

我有一個DOM樹是這樣的:獲取正確的元素

<div class="like-bttn" data-answer-id="{{answer.id}}"> 
    <div class="count>{{ answer.like_score }}</div> 
    <div class="heart>&#10084;</div> 
</div> 

我有一個JavaScript代碼,以使Ajax請求的時候像-BTTN點擊:

$(".like-bttn").click(function(ev) { 
    var id = $(ev.target).attr('data-answer-id'); 
    ... do something with id ... 
    }) 

但是當。心點擊我的代碼不起作用,因爲ev.target是.heart,它沒有'data-answer-id'

什麼是正確的方法在這stiuation?

+0

我建議閱讀http://learn.jquery.com/events/event-basics /和其他活動文章。 –

回答

2

使用$(this),不活動對象:

$(".like-bttn").click(function(ev) { 
    var id = $(this).attr('data-answer-id'); 
    ... do something with id ... 
}) 

,正如尼爾指出,它的清潔劑使用data

var id = $(this).data('answerId'); 
+1

或:'$(this).data('answerId')' – Neal

+0

jQuery將數據元素更改爲camelCase。 [[source](http://api.jquery.com/data/#data-html5)] – Neal

+0

@Neal:實際上不是這樣做的jQuery(或許它確實如此,但它都符合規範): http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes。 –