![](/img/trans.png)
[英]Javascript / JQuery comma separated value find last in list and build array
[英]jQuery find elements then make into comma separated list
我的頁面上有許多文本框,我想在單擊按鈕時將它們中的值添加到另一個元素。 但是,我當前的代碼輸出如下值:
Value oneValue twoValue three
我更希望他們像這樣出來:
Value one, Value two, Value three
我現在的 JS 是這樣的:
var textInput = $(".random-input").text();
$(".output-box").append(textInput);
問題是因為所有元素都被一起解釋。 要解決這個問題,您可以將文本值map()
到一個數組並join()
它:
var textInput = $(".random-input").map(function() {
return $(this).val();
}).get().join(', ');
$(".output-box").text(textInput);
以上假設.output-box
是一個標准元素。 如果它是另一個文本框,則需要使用val(textInput)
。
- 2020 年 10 月更新 -
上面的例子現在也可以通過使用 ES6 箭頭函數變得更簡潔:
var textInput = $(".random-input").map((i, el) => el.value).get().join(', ');
$(".output-box").text(textInput);
您可以遍歷每個輸入,然后使用join
var textInput = []; $(".random-input").each(function() { textInput.push(this.value) }); $(".output-box").append(textInput.join(', '));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <input type='text' class='random-input' value='val1' /> <div class='output-box'></div>
@Rory McCrossan 代碼移至 jQuery 函數joinVal :
jQuery.fn.extend({
joinVal: function (separator)
{
if (typeof separator === 'undefined')
separator = ",";
var $this = $(this);
if ($this && $this.length > 1)
return $this.map(function () { return $(this).val(); }).get().join(separator);
else
return $this.val();
}
});
用法:
var textInput = $(".random-input").joinVal();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.