我有这个:
$('DIV').on('click', function(e) {
$('textarea').val( $(e.target).text() );
});
它运行良好,但事实是当我点击div之外的某个地方时,它会显示页面的html代码。我不希望这样。
试试这里:
我真的只想要一个最小的div,li,ul或其他什么的文本。如果我不清楚,请告诉我。
编辑:我在div中尝试但仍然相同。编辑2:
例如,如果我有这个:
<div>
divdivdiv
<div>vidvidvid</div>
<lu>lululu</lu>
</div>
如果我点击divdivdiv,我只想要divdivdiv而不是divdivdivvidvidvidlululu
答案 0 :(得分: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(' '));
});