1

我有这个 :

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

它运行良好,但问题是当我单击 div 之外的某个位置时,它会向我显示页面的 html 代码。我不想要那个。

在这里试试:

http://jsfiddle.net/g3Cwy/

我真的只想要一个最小的 div、li、ul 或其他任何东西的文本。如果我不清楚,请告诉我

编辑:我在一个 div 中尝试过,但还是一样。

编辑 2:

例如,如果我有这个:

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

如果我点击 divdivdiv,我只想要 divdivdiv 而不是 divdivdivvidvidvidlululu

4

1 回答 1

1

您需要将选择器从更改document'div'

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

您还可以使用this而不是e.target获取单击的元素实例。

更新的小提琴


我真的只想要一个最小的 div、li、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(' '));
});

示例小提琴

于 2013-11-01T16:30:27.433 回答