我正在尝试将文本从div
内部移动到输入字段中的value
,但我得到[object Object]
作为输出。任何人都可以解释原因吗?
input = $('#input').contents();
$('#output').val(input);
答案 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()方法主要用于获取表单元素的值 例如input,select和textarea。
.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>