2013-11-01 142 views
1

的文字我有這樣的:選擇一個div

$('DIV').on('click', function(e) { 
    $('textarea').val($(e.target).text()); 
}); 

它的工作很好,但事情是,當我點擊出來的div的地方,它顯示我的網頁的HTML代碼。我不想那樣。

試試這裏:

http://jsfiddle.net/g3Cwy/

我真的想要一個最小的div只是文本,李,UL或什麼的。讓我知道如果我不清楚

編輯:我嘗試了一個div內,但仍然一樣。

編輯2:

如果,例如,我有這樣的:

<div> 
divdivdiv 
<div>vidvidvid</div> 
<lu>lululu</lu> 
</div> 

如果我點擊divdivdiv,我只想divdivdiv AND NOT divdivdivvidvidvidlululu

回答

1

您需要更改從選擇document'div'

$('div').on('click', function(e) { 
    $('textarea').val($(this).text()); 
}); 

您也可以使用this而不是e.target來獲取單擊的元素實例。

Updated fiddle


我真的想要一個最小的div裏,UL或什麼的只是文本。讓我知道如果我不清楚

在這種情況下,它要複雜得多,因爲你需要排除兒童,然後深入文本節點。試試這個:

$('div').on('click', function (e) { 
    e.stopPropagation(); 
    var text = $(this).not($(this).children()).contents().map(function() { return $.trim(this.nodeValue); }).get(); 
    $('textarea').val(text.join(' ')); 
}); 

Example fiddle

+0

好吧好吧,但在我的DIV,有一些樣式,腳本等,所以它表明。我只想選擇最小的Div,Lu或Li(>和<之間的文本) – user1708580

+0

「最小」是什麼意思?你的HTML在這個例子中是無效的,所以很難說出你的意思。 –

+0

我更新了我的問題 – user1708580