2013-04-24 96 views
1
<textarea name="message" id="message" class="box_1"></textarea> 
<div class="buttons"> 
    <img src="smileys/smile.gif" title=":)" /> 
</div> 

如何獲得textarea的ID被點擊圖像時?頁面上有多個.buttons和表情符號(以及多個textarea)。獲取上述元素的id

+0

所以你想獲得位於img容器正上方的textarea的id? – 2013-04-24 17:04:59

+0

嘗試'$(this).closest(「textarea」)。prop(「id」);' – Timmerz 2013-04-24 17:11:49

+0

'.closest('textarea')'不會工作,因爲'img'沒有嵌套在它裏面。 – 2013-04-24 17:19:21

回答

4
$('div.buttons img').click(function(){ 
    var id = $(this.parentNode).prev('textarea').prop('id');  
    // var id = this.parentNode.previousElementSibling.id;  
}); 

http://jsfiddle.net/z4DWU/1/

1

你通過導航DOM樹得到它:

function imgClicked(){ 
    var theElementId = $(this).parent().prev().prop("id"); 
} 
+0

jQuery對象沒有'previous'方法。 – undefined 2013-04-24 17:20:11

+0

對不起,我錯了,我糾正了我的答案,這應該做到這一點 – Kenneth 2013-04-24 17:22:11

0

如果您使用jQuery 1.7+你可能想用.on()的方法來做到這一點:

$('div.buttons').on('click', 'img', function() { 
    var id = $(this).parent().prev('textarea').prop('id'); 
    // doSomething with the id 
}); 

如果您不是動態加載內容,然而,直接綁定imgclick()沒什麼大不了的。