我一直在创建一个应用程序,根据您在一个文本框中键入的数字添加表格。我想弄清楚每次第二次单击“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;
}
答案 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/
我希望我在正确的轨道上。如果我误解了,请告诉我。