2013-03-03 50 views
2
<div class="pad" id="test" contenteditable="true" spellcheck="false"> 
     <div id="a0" class="fif" > text0</div> 
     <div id="a1" class="fif" >text1</div> 
     <div id="a2" class="fif" >text2</div> 
    </div> 

內孩子的div id作爲在上面的代碼中有一個CONTENTEDITABLE DIV裏面坐了一些孩子的div。我需要一個jquery來返回id的子div,我通過輸入。例如如果我正在編輯text1它應該給我(返回)「a1」獲取CONTENTEDITABLE格

它可以根據需要,如果我使用

var clicked; 
$('#test').click(function(event){ 
    clicked = $(event.target); 
    alert(clicked.attr('id')); 
});` 

如下所示

http://jsfiddle.net/bernie1227/cK69Q/(即在點擊返回的id =「A1」),但它不以類似的方式,如果工作我用

var clicked; 
$('#test').keypress(function(event){ 
    clicked = $(event.target); 
    alert(clicked.attr('id')); 
}); 

如下所示http://jsfiddle.net/hari_OM/bLgkv/即上鍵入它返回「ID = TES T」,而不是 「ID = A1」

我嘗試使用event.target.id$(this).attr("id")但他們返回ID = 「測試」,而不是ID = 「A1」,但我需要得到「A1」 。我也嘗試在子div內注入onkeypress="funcname(this.id)"並從定義的函數中回收它,但它不起作用

+1

這個答案應該幫助:http://stackoverflow.com/a/1336922/96100 – 2013-03-05 16:37:05

+0

喲!它的工作與蒂姆的鏈接http://jsfiddle.net/MeetM/fmums/#base – MeetM 2013-03-10 18:28:13

回答

0

我寫這依賴於跟蹤事件的目標,使用event.target一個解決方案: http://jsfiddle.net/bernie1227/cK69Q/

+0

這不是我想要的。它適用於** $('#test')。click(function(event){。 。**但它不適用於** $('#test')。keypress(function(event){.. **,正如我在此處顯示的那樣[http://jsfiddle.net/hari_OM/bLgkv/] (http://jsfiddle.net/hari_OM/bLgkv/)。如果按鍵顯示** id = test **而不是** id = a1 **。 – 2013-03-04 21:23:16

0

曾經研究過這? DOMCharacterDataModified

$(document).on('DOMCharacterDataModified', function(event) { 
    if($(event.target).parent().attr('id') === 'parentid') { 
     console.log(
      'target',$(event.target),"\r" 
     ); 
    } 
}); 
相關問題