javascript - 如何将所有输入元素作为单独的元素推送到数组?

标签 javascript jquery arrays

我正在尝试将输入栏中的多个项目作为单独的项目推送到数组中。但是,我只能将它们作为一个组合项目推送。

因此,即使我将 3 个名称插入数组中,它们也将是数组中的一个元素,而不是三个单独的元素。

我的问题与将多个项目插入数组的问题不同,因为我的问题更多的是如何将输入栏中的元素作为单独的项目插入数组

$("#people").on('click', '.list-group-item', function(){
  var peopleName = $(this).text();
  var input = $("#friendsNames");
  input.val(input.val() + peopleName + " ");
  
  $("#button").click(function(){
  //How do I grap each individual name that has been added to input, and push it into the array?
    var allNames = [];
    allNames.push();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="list-group-item" id="people">
  <li class="list-group-item"><a href="#">Name1</a></li>
  <li class="list-group-item"><a href="#">Name2</a></li>
  <li class="list-group-item"><a href="#">Name3</a></li>
  <li class="list-group-item"><a href="#">Name4</a></li>
</ul>
  <input type="text" name="namesOfFriend" id="friendsNames" value=""  />
<button id="button">Button</button>

最佳答案

在点击事件中尝试这个Array#push。并将数组声明为global。并在外部声明按钮点击事件,而不是在内部人员中 点击

var allNames = [];
$("#people").on('click', '.list-group-item', function() {
  var peopleName = $(this).text();
  var input = $("#friendsNames");
  input.val(input.val() + peopleName + " ");
  allNames.push(peopleName);

});
$("#button").click(function() {
  console.log(allNames)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="list-group-item" id="people">
  <li class="list-group-item"><a href="#">Name1</a></li>
  <li class="list-group-item"><a href="#">Name2</a></li>
  <li class="list-group-item"><a href="#">Name3</a></li>
  <li class="list-group-item"><a href="#">Name4</a></li>
</ul>
<input type="text" name="namesOfFriend" id="friendsNames" value="" />
<button id="button">Button</button>

或者使用split("")方法从输入到数组。它足以从输入值创建数组

$("#people").on('click', '.list-group-item', function() {
  var peopleName = $(this).text();
  var input = $("#friendsNames");
  input.val(input.val() + peopleName + " ");
});
$("#button").click(function() {
 var allNames = $("#friendsNames").val().trim().split(" ")
    console.log(allNames)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="list-group-item" id="people">
  <li class="list-group-item"><a href="#">Name1</a></li>
  <li class="list-group-item"><a href="#">Name2</a></li>
  <li class="list-group-item"><a href="#">Name3</a></li>
  <li class="list-group-item"><a href="#">Name4</a></li>
</ul>
<input type="text" name="namesOfFriend" id="friendsNames" value="" />
<button id="button">Button</button>

关于javascript - 如何将所有输入元素作为单独的元素推送到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44257018/

相关文章:

javascript - 如何使用cookie重定向到另一个页面

javascript - 如何使用 JavaScript 选择字符串的最后 4 个字符?

javascript - 如何构建一个将段落拆分为句子的正则表达式,但不会拆分 <> 内的任何标点符号?

javascript - 链接外部 JS 文件

javascript - Jquery函数循环添加值

javascript - 组合 getElementsByWhatever 返回的数组

php - 计算二维数组中的 "truthy"个值

javascript - javascript中的设置超时问题

javascript - 手动隐藏后的 Bootstrap 模态错误

jQuery AJAX 调用数据库工作,但不按顺序