jQuery更新文本区域而不替换内容
在JavaScript中,您可以使用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
=.
或+=
将现有数据添加到数据中。如何在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来表达。你在说什么?你在说什么?