如何将文本从div移动到输入值?

时间:2018-05-15 21:01:45

标签: javascript jquery

我正在尝试将文本从div内部移动到输入字段中的value,但我得到[object Object]作为输出。任何人都可以解释原因吗?

    input = $('#input').contents();
    $('#output').val(input);

3 个答案:

答案 0 :(得分:3)

首先使用

获取文本内容
$("#d").text()

将此添加到

之类的输入中
$("#y").val($("#d").text());

现在您可以删除div的文本,如

 $("#d").text("")

$("#y").val($("#d").text());
$("#d").text("")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="d">text</div>
<input type="text" id="y"/>

注意:

给定一个表示一组DOM元素的jQuery对象,.contents()方法允许在DOM树中搜索这些元素的直接子元素,并从匹配元素构造一个新的jQuery对象。结果包括文本节点和注释节点以及生成的jQuery对象中的HTML元素。 Here

这就是你得到object的原因。你真的需要在这里使用.text()来获取文本内容。

答案 1 :(得分:3)

斯宾塞。

.contents()方法不会为您提供文本,而是一个包含其所包含元素集合的对象。你可以使用:

val method:

  

.val()方法主要用于获取表单元素的值   例如input,select和textarea。

text method:

  

.text()方法不能用于表单输入或脚本。设置或   获取input或textarea元素的文本值,使用.val()   方法

您正在寻找的是:

st[i] = top(a)->value

可以像这样分解:

awk '{for (i = 1; i <= NF; i++) $i = sprintf("%.2f", $i);}1' file1 > file2

以下是一个完整的示例:

  $('#input').val($('#div').text());
var textToMove = $('#div').text();
$('#input').val(textToMove);

答案 2 :(得分:2)

您尝试使用的contents()由jQuery文档定义为

  

要获取匹配元素集中每个元素的子元素,   包括文本和注释节点

所以,contents()正在返回包含所有这些孩子,评论等的整个对象......这就是原因:[Object Object]。如果您使用console.log($('#input').contents()),您将能够在控制台中看到整个对象。

因此,在这种情况下,最好使用text(),只获取匹配元素的文本内容。

获取文本后,使用val();

将其设置为输入

以下示例显示了这一点。 (我添加了一个计时器,只是为了更好地代表代码工作,你可以删除它,只让里面的代码。)

另外,如果您想将文字保留在div中,请删除我使用的部分.text('');

setTimeout(function(){
  input = $('#input').text();
  $('#output').val(input);
  $('#input').text('');
}, 1500);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='' id="output">
<div id="input">Abcdef 1234567890</div>