Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery更新文本区域而不替换内容_Jquery_Arrays_Checkbox_Textarea - Fatal编程技术网

jQuery更新文本区域而不替换内容

jQuery更新文本区域而不替换内容,jquery,arrays,checkbox,textarea,Jquery,Arrays,Checkbox,Textarea,在JavaScript中,您可以使用=.或+=将现有数据添加到数据中。如何在jQuery中实现这一点。我试图在表单中添加一个复选框列表,每个字段都应该在文本区域中建立一个列表,用逗号分隔数据 我似乎不明白。它只替换q值,不进行添加 jQuery function ExportButton(){ var data = $('#orders').text(); var selected = new Array(); $('.mycb:checked').each(fu

在JavaScript中,您可以使用
=.
+=
将现有数据添加到数据中。如何在jQuery中实现这一点。我试图在表单中添加一个复选框列表,每个字段都应该在文本区域中建立一个列表,用逗号分隔数据

我似乎不明白。它只替换
q
值,不进行添加

jQuery

function ExportButton(){
    var data = $('#orders').text();
    var selected = new Array();
        $('.mycb:checked').each(function() {
        var q = $(this).attr('value');
        alert(q);
        $('#orders').text(data+q+',');

    });
}
HTML

<div><input type="checkbox" id="mycb2" class="mycb" value="Chocolate" /> Chocolate</div>
<div><input type="checkbox" id="mycb1" class="mycb" value="Vanilla" /> Vanilla</div>
<a href="javascript:ExportButton()">Export to Textarea</a>
<textarea rows="10" cols="80" id="orders" name="orders"></textarea>
巧克力 香草 jsFiddle


任何帮助都将不胜感激。我想建立一个类似于4,5,3,4,2424,2的列表,在文本区域中以不带逗号结尾将是一种奖励,但我可能会使用正则表达式?

使用
.val
而不是
.text


使用
.val
而不是
.text


您可以始终混合使用jQuery和vanilla JS,因此如果您有一些有用的东西,只需这样做,而不需要为简单的文本节点追加调用jQuery的开销。

您可以始终混合使用jQuery和vanilla JS,因此如果您有一些有用的东西,只需这样做,不要为简单的文本节点追加调用jQuery的开销。

这只是因为jQuery无法识别
文本()。由于它类似于输入字段,因此可以使用
val()
函数:

function ExportButton(){
    var data = $('#orders').val();
    var selected = new Array();
    $('#mycb:checked').each(function() {
        var q = $(this).attr('value');
        alert(q);
        $('#orders').val(data+q+',');
    });
}

这只是因为jQuery无法识别
文本()。由于它类似于输入字段,因此可以使用
val()
函数:

function ExportButton(){
    var data = $('#orders').val();
    var selected = new Array();
    $('#mycb:checked').each(function() {
        var q = $(this).attr('value');
        alert(q);
        $('#orders').val(data+q+',');
    });
}

似乎没有人认识到这是在一个循环中,
text()
html()
val()
将在每次迭代中覆盖内容。您真正需要做的就是在循环中关注字符串,并在循环后附加一次:

function ExportButton(){
  var data = "";

  $('.mycb:checked').each(function(i,el) {
      data += el.value + ',';
  });

  $('#orders').text( data );
}

似乎没有人认识到这是在一个循环中,
text()
html()
val()
将在每次迭代中覆盖内容。您真正需要做的就是在循环中关注字符串,并在循环后附加一次:

function ExportButton(){
  var data = "";

  $('.mycb:checked').each(function(i,el) {
      data += el.value + ',';
  });

  $('#orders').text( data );
}
看看这个

看看这个


jQuery的
text()。请改为尝试
prepend()
append()
。jQuery的
text()
方法不会添加内容,而是完全替换内容。请尝试
prepend()
append()
。+1了解详细信息并正确阅读我的问题。我添加了一个空白行,以确保在运行函数之前表单是空白的,这样就不会重复任何数据。@TheBlackBenzKid-不客气,如果每次都想从一个空文本区域开始,请不要从它的值开始。我会更新答案的+1了解详细信息并正确阅读我的问题。我添加了一个空白行,以确保在运行函数之前表单是空白的,这样就不会重复任何数据。@TheBlackBenzKid-不客气,如果每次都想从一个空文本区域开始,请不要从它的值开始。我会更新答案的!有意思的是用条件语句加1来表达。有意思的是用条件语句加1来表达。你在说什么?你在说什么?