jquery在第二次点击时删除克隆?

时间:2017-04-20 19:44:44

标签: jquery clone

我一直在创建一个应用程序,根据您在一个文本框中键入的数字添加表格。我想弄清楚每次第二次单击“Go”按钮后,我生成的前一个表格如何消失。到目前为止,我可以添加表格,但他们只是继续克隆。

我尝试使用'seen'对象来删除以前的表,但是无法弄清楚如何实际使用我的代码。我抬起头来。也删除了,但无法弄清楚我的代码中究竟在哪里工作。

实时版:http://codepen.io/BabinecJ/pen/BRjJbw

Template.Category.helpers({
  categories(){
    var id = FlowRouter.getParam('_id');
//create a variable with the correct category by id
var category = Category.findOne(id, {
  sort: {
    timestamp: 1
  },
  limit: 100
});
console.log(category);
//target ID within posts
var postArray = category.posts;
console.log(postArray);
//treat the object, clean it up to prepare it for becoming an array
      var postArrayStr = JSON.stringify(postArray).replace(/ID/g, '').replace(/\[|\]/g, '').replace(/""/g, '').replace(/:/g, '').replace(/\{|\}/gi, '');
//create an array
      var idsArray = postArrayStr.split(',').map(function(item) {
        return parseInt(item, 10);
      });
//match it to posts id
      var matchi = Posts.find({
  id: {
    $in: idsArray
  }
}).fetch();
      //
      console.log(matchi);
      //return it
      return matchi;

  }

}); 
$('[name="cand_no" ]').on('change', function() {
  // Not checking for Invalid input
  if (this.value != '') {
    var val = parseInt(this.value, 10);
    ///Click add button add count number + table

    $(function() {
      $('#add').bind('click', function() {
        $('#mytbody');
        var count = $('#mytbody').children('tr').length;
        $('#counter').html(count);

        ///Adding coder name 
        var name = $("#tname").val();
        $('#aname').html(name);
      });
    });
    
    /// Figuring out way to disable enter key being pressed
    $(document).ready(function() {
      $('cand_no').keydown(function(event) {
        if (event.keyCode == 13) {
          event.preventDefault();
          return false;
        }
      });
    });

    for (var i = 0; i < val; i++) {
      // Clone the Template 
      var $cloned = $('.template tbody').clone();

      // For each number added append the template row 
      $('#studentTable tbody').append($cloned.html());
    }
  }

  var seen = {};
  $('a').each(function() {
    var txt = $(this).text();
    if (seen[txt])
      $(this).remove();
    else
      seen[txt] = true;
  });
});
.template {
  border-style: solid;
}

#cand_no {
  background-color: red;
}

#add {
  color: blue;
  position: absolute;
  margin-left: -900px;
  margin-top: -35px;
}

1 个答案:

答案 0 :(得分:0)

好的,所以在仔细研究它而不是为你的代码找到解决方案后,我试图调整你的代码,使它与你想要做的更好。

我为你做了http://jsfiddle.net/j1sqej3w/(我相信你想做)。

我使用的jQuery是:

$(document).ready(function() {
  $("form").submit(function() {
    var times = $("input").val();
    $("tr").slice(2).remove();
    for(var i=0; i < times; i++){
        $("table").append("<tr><td>row 1</td><td>row 2</td></tr>");
    }
    return false;
  });
});

注意$("tr").slice(2).remove();保持前两个表行不变,原始顺序与其他表格在下次添加值时消失。

执行删除输入以添加表格行等任务可以通过将<form>转换为<div>来完成,如http://jsfiddle.net/66x3n11f/

我希望我在正确的轨道上。如果我误解了,请告诉我。