首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在点击时添加/删除数组中的元素?

如何在点击时添加/删除数组中的元素?
EN

Stack Overflow用户
提问于 2021-04-25 22:52:49
回答 2查看 113关注 0票数 0

如何防止在单击座位时出现重复,这样当我再次单击它时,它不会被附加,而是被连续删除/添加。

代码语言:javascript
复制
  var ids = [];
  $seatid = ids;
  var status = "unavailable";

  $(document).ready(function() {
    var $div = $("<div id='form'></div>").appendTo(".appended"), code;

      $('.seat').click(function(){
        var id = jQuery(this).attr("id");

        if ($(this).hasClass('available')){
          code = jQuery(this).attr("id");
          ids.push(code);
          $div.append(code + "<br />");
          console.log(code);

        }else{
          console.log('Failed');
          console.log(id);
        }                        
      });
  });

see pic of the output

EN

回答 2

Stack Overflow用户

发布于 2021-04-25 23:02:03

推送新ID后,您需要删除类"available“。我对JQuery不是很熟悉,但它看起来像这样:

代码语言:javascript
复制
if ($(this).hasClass('available')){
      code = jQuery(this).attr("id");
      ids.push(code);
      $div.append(code + "<br />");
      console.log(code);
      //REMOVE AVAILABLE CLASS
      $(this).removeClass("available");
    }

在运行else语句时,您可能需要重新添加该类(假设您想让一个“不可用”的座位在单击时变为“可用”)。

当您从“不可用”(在数组中)变为“可用”(不在数组中)时,您还需要一些逻辑来从数组中删除seatID。

票数 1
EN

Stack Overflow用户

发布于 2021-04-25 23:16:21

您可以使用Jquery的toggleClass()函数来完成此操作。

例如,如果你想删除或添加类"available“和"selected",下面的代码会工作得很好。

代码语言:javascript
复制
$('#x').click(function(){
  $('#x').toggleClass('available').toggleClass('selected');
})

另外,如果您想从数组中删除项。您可以使用以下代码。

代码语言:javascript
复制
const array = [12, 34, 10];

const index = array.indexOf(12);
if (index > -1) {
  array.splice(index, 1);
}

// array = [34, 10]
console.log(array);

最后,您的代码应该按如下方式更新。

代码语言:javascript
复制
var ids = [];
$seatid = ids;
var status = "unavailable";

$(document).ready(function() {
var $div = $("<div id='form'></div>").appendTo(".appended"), code;

  $('.seat').click(function(){
    var id = jQuery(this).attr("id");
    if ($(this).hasClass('available')){
        code = jQuery(this).attr("id");
        ids.push(code);
        $div.append(code + "<br />");
    } else {
        const index = ids.indexOf(code);
        if (index > -1) {
          ids.splice(index, 1);
        }
        console.log('Failed');
        console.log(id);
    }                        
  });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67254673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档