第二次追加后添加逗号的问题等等
Issue on Adding Comma After Second Append and so on
你能看看这个演示吗,让我知道我如何添加逗号,而不是第一个追加。
我有一个像这样的HTML
<select id="selectBox" class="sel">
<option>option 1</option>
<option>option 2</option>
<option>option 3</option>
</select>
<select id="selectBox" class="sel">
<option>option 4</option>
<option>option 5</option>
<option>option 6</option>
</select>
<select id="selectBox" class="sel">
<option>option 7</option>
<option>option 8</option>
<option>option 9</option>
</select>
<input id="copyBtn" type="button" value="copy" />
<textarea id="output">
</textarea>
在Js中,我拥有的是:
$(".sel").on("change", function(){
var selected = $(this).val();
$("#output").append(", " + selected);
});
但正如你所看到的,追加是在所有选择之前应用逗号,甚至是第一个!
在添加,
之前,您可以检查是否存在任何值
var $op = $("#output")
$(".sel").on("change", function () {
var selected = $(this).val(),
op = $op.val().trim();
$op.val((op ? op + ", " : '') + selected);
});
演示:Fiddle
这里有一个解决方案:
$(".sel").on("change", function(){
var selected = [];
$(".sel").each(function() {
selected.push($(this).val());
});
$("#output").val(selected.join(", "));
});
请检查更新的JSFiddle
检查文本区域val()
是否添加第一个元素
$(".sel").on("change", function(){
var selected = $(this).val();
var str;
if($("#output").val().trim() === ''){ str = selected; }
else { str = ", " + selected; }
$("#output").append(str);
});
或者一种更容易维护删除的方法:拥有一个数组并使用join()
var selectedItems = [];
$(".sel").on("change", function(){
var selected = $(this).val();
if(selectedItems.indexOf(selected) >= 0){
selectedItems.push(selected);
}
$("#output").append(selectedItems.join(', '));
});
这可能是一个解决方案,而不是在所有".sel"上绑定更改,先在".sel"上循环,然后在它们每个上绑定更改。但要获取每个".seel"的索引,如果它是0(第一个元素),则更改不包括逗号的文本。
这是最新的小提琴。
$(".sel").each(function(index) {
$(this).on("change", function(){
var selected = $(this).val();
var appendText = index == 0 ? selected : (", " + selected);
$("#output").append(appendText);
});
});
请注意,我没有更改您原始代码中的任何逻辑,而是专注于您努力修复/实现的特定行为。
相关文章:
- 第二次追加后添加逗号的问题等等
- 追加新web组件时出现线程问题
- 问题在于克隆、拼接、删除、追加 jquery 函数
- IE8 追加到 XML 问题:类型不匹配
- 在文件读取器中追加的订单问题
- JQuery 可拖动和可放置的追加问题
- Ajax追加问题
- 在动态加载的表中仅追加新数组项时出现问题
- 关于追加的问题
- 重复追加问题
- jQuery追加的问题
- 面对的问题,而追加下拉对象与字符串在Jquery
- 在向formData对象追加新值时遇到问题
- jQuery HTML追加导致UTF-8国家语言字符问题
- jQuery表追加问题
- 追加json_encode的问题
- $.each中追加的问题
- 使用$()追加元素的问题
- ajax请求成功后在jqtree中追加子节点的问题
- 我在jquery/javascript中的动态追加td有什么问题