按可排序顺序获取所有文本区域内容
get all textarea content in sortable order
我想按可排序的顺序获取所有文本区域内容并插入其他文本区域:
选项 1: $("div textarea").val();
选项 2: $("div textarea").text();
问题:
选项 1:使用新输入更新 val,但仅从div #1 获取 val
选项 2:按可排序顺序获取所有内容,但不会使用新输入进行更新
代码:
$(function() {
$( "#sortable" ).sortable({
out: function( event, ui ) {change();}
});
function change(){
var content = "";
$("#result textarea").empty();
$("#sortable" ).sortable('toArray', {attribute: 'value'});
//content = $("div textarea").text(); // get all, but no update
//content = $("div textarea").val(); // get only val from #1
$("#result textarea").text(content);
}
});
<ul id="sortable">
<div id="1" value="1">
<textarea rows="4" cols="50">01---</textarea>
</div>
<div id="2" value="2">
<textarea rows="4" cols="50">02---</textarea>
</div>
<div id="3" value="3">
<textarea rows="4" cols="50">03---</textarea>
</div>
<div id="4" value="4">
<textarea rows="4" cols="50">04---</textarea>
</div>
</ul>
<div id="result" value="result">
<textarea rows="4" cols="50"></textarea>
</div>
将out
更改为 stop
,因此更改将在排序停止时触发,这将调用更新列表,使用 content = $("div textarea").text();
编写文本
$(function() {
$("#sortable").sortable({
stop: function(event, ui) {
change();
}
});
$("#sortable textarea").on('change keyup paste', change);
function change() {
var content = "";
$("#result textarea").empty();
$("#sortable").sortable('toArray', {
attribute: 'value'
});
$("div textarea").each(function() {
content += this.value;
});
$("#result textarea").text(content);
}
});
<!DOCTYPE html>
<html>
<head>
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<ul id="sortable">
<div id="1" value="1">
<textarea rows="4" cols="50">01---</textarea>
</div>
<div id="2" value="2">
<textarea rows="4" cols="50">02---</textarea>
</div>
<div id="3" value="3">
<textarea rows="4" cols="50">03---</textarea>
</div>
<div id="4" value="4">
<textarea rows="4" cols="50">04---</textarea>
</div>
</ul>
<div id="result" value="result">
<textarea rows="4" cols="50"></textarea>
</div>
</body>
</html>
我发现 .text() 只更新一次明显地更新文本区域,所以 .val() 是要走的路。输入文本区域,看到它不会更改 html,但会更改值。
也许您没有正确获取内容,因此请使用 console.log 进行测试。也许您需要遍历每个文本区域,并将 val 附加到您的内容变量中。
相关文章:
- onkeyup无法动态创建多个文本区域
- 具有所有样式的文本正在复制到可编辑文本区域
- 在文本区域POST后解码JSON
- 在文本区域中使用jQuery.text()保持换行符
- ng在下拉列表和文本区域提交
- 将文本插入光标所在的文本区域
- 离开页面导航后保留文本区域内容
- Javascript-在文本区域中断,但不在段落中中断
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 测试文本区域中的特定文本格式
- 文本编辑后,append函数不适用于文本区域
- 如何在ReactJs中链接下拉列表和文本区域
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 使用JSON文件中的变量(字符串)填充文本区域
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 如何为动态创建的文本区域中输入的值更新ng模型
- 延迟高亮显示文本区域中的文本
- 将字母添加到文本区域的末尾
- TinyMCE在新添加的文本区域