JAVASCRIPT:具有自动生成的选定值组合的动态表行
关于这一点,我在上问了我的第一个问题。现在,在谷歌搜索之后,我找到了关于动态表行创建和删除的信息,并将其应用到我的问题中。经过一个小时的编码和分析,我得到了这个。我现在的问题如下:JAVASCRIPT:具有自动生成的选定值组合的动态表行,javascript,html,css,twitter-bootstrap-3,Javascript,Html,Css,Twitter Bootstrap 3,关于这一点,我在上问了我的第一个问题。现在,在谷歌搜索之后,我找到了关于动态表行创建和删除的信息,并将其应用到我的问题中。经过一个小时的编码和分析,我得到了这个。我现在的问题如下: 1。当我只有一个select并且选择了一个选项时,什么都不会发生,我将在添加包含另一个select的新行时工作 2。当我删除1行时,输入框中的值没有删除。 3.我只能删除最后一行,是否可以选择 以下代码如下所示。我希望你能在这方面帮助我 <!DOCTYPE html> <html lang="en"
1。当我只有一个select并且选择了一个选项时,什么都不会发生,我将在添加包含另一个select的新行时工作
2。当我删除1行时,输入框中的值没有删除。
3.我只能删除最后一行,是否可以选择 以下代码如下所示。我希望你能在这方面帮助我
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<meta http-equiv="Cache-control" content="no-cache"> <!--The No-Cache-->
<title>Elements Combination</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr >
<th class="text-center">
#
</th>
<th class="text-center">
Elements
</th>
</tr>
</thead>
<tbody>
<tr id='addr0'>
<td>
1
</td>
<td>
<select class="form-control" name='name0' >
<option value="H">Hydrogen</option>
<option value="He">Helium</option>
<option value="Be">Beryllium</option>
<option value="B">Boron</option>
<option value="C">Carbon</option>
<option value="N">Nitrogen</option>
</select>
</td>
</tr>
<tr id='addr1'></tr>
</tbody>
</table>
<input type="text" class="form-control" placeholder="Combination Here" name="combination" id="combination" readonly="">
</div>
</div>
<a id="add_row" class="btn btn-default pull-left">Add Row</a><a id='delete_row' class="pull-right btn btn-default">Delete Row</a>
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
var i=1;
$("#add_row").click(function(){
$('#addr'+i).html("<td>"+ (i+1) +"</td><td><select class='form-control' name='name"+i+"' ><option value='H'>Hydrogen</option><option value='He'>Helium</option><option value='Be'>Beryllium</option><option value='B'>Boron</option><option value='C'>Carbon</option><option value='N'>Nitrogen</option></select></td>");
$('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>');
i++;
$('select').on('change', function(){
var s = '';
$('select').each(function(){
if(s == '') {
s = $(this).val();
} else {
s = s + ' + ' + $(this).val() ;
}
})
$('#combination').val(s);
})
});
$("#delete_row").click(function(){
if(i>1){
$("#addr"+(i-1)).html('');
i--;
}
});
});
</script>
元素组合
#
元素
1.
氢
氦
铍
硼
碳素
氮
添加行删除行
$(文档).ready(函数(){
var i=1;
$(“#添加_行”)。单击(函数(){
$('#addr'+i).html(“+(i+1)+”氢铵基碳氮“);
$('#tab_logic')。追加('');
i++;
$('select')。在('change',function()上{
var s='';
$('select')。每个(函数(){
如果(s==“”){
s=$(this.val();
}否则{
s=s++'++$(this.val();
}
})
$('组合').val(s);
})
});
$(“#删除_行”)。单击(函数(){
如果(i>1){
$(“#addr”+(i-1)).html(“”);
我--;
}
});
});
您可以在每个
行数中创建某种类型的删除图标
$(deleteIcon).click(function ()
var td = $(this).parent()[0];
$(td).parent()[0].remove();
});
考虑使用可重用函数,这将帮助您的代码更加模块化。您可以在每一行上放置一个delete row函数 请参见此处的示例:
元素组合
#
元素
添加行
$(文档).ready(函数(){
变量选择项=函数(){
$('组合').val(
$(“#element_table select”).map(函数(索引,元素){return$(element.val();}).get().join(“+”)
);
};
var add_row=函数(){
var new#U row=$(“”+($(“#元素#表>tr”)。长度+1)+“氢铵基锂硼碳氮元素删除行”)。附录(“”元素#表“);
选择_项();
新建行。查找('select')。在('change',选择项);
新建行。查找(“#删除行”)。单击(函数(){
$(this.parents(“tr”).remove();
选择_项();
});
};
添加_行();
$(“添加行”)。单击(添加行);
});
此外,还应将html与javascript分开进行调试。这可以解释你的代码错误。好的,我明白了。我试试你的建议,看看有什么不同。凯,尤里卡!谢谢你的回答和帮助,先生@nzquagmire!!
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<meta http-equiv="Cache-control" content="no-cache"> <!--The No-Cache-->
<title>Elements Combination</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<table class="table table-bordered table-hover" id="tab_logic">
<thead>
<tr >
<th class="text-center">
#
</th>
<th class="text-center">
Elements
</th>
<th class="text-center" style="width:20%;">
</th>
</tr>
</thead>
<tbody id='element_table'>
</tbody>
</table>
<input type="text" class="form-control" placeholder="Combination Here" name="combination" id="combination" readonly="">
<a id="add_row" class="btn btn-default pull-left">Add Row</a>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
var select_item = function(){
$('#combination').val(
$("#element_table select").map(function(index, element){ return $(element).val(); }).get().join("+")
);
};
var add_row = function(){
var new_row = $("<tr><td>"+ ($("#element_table>tr").length+1) +"</td><td><select class='form-control'><option value='H'>Hydrogen</option><option value='He'>Helium</option><option value='Be'>Beryllium</option><option value='B'>Boron</option><option value='C'>Carbon</option><option value='N'>Nitrogen</option></select></td><td><a id='delete_row' class='pull-right btn btn-default'>Delete Row</a></td></tr>").appendTo("#element_table");
select_item();
new_row.find('select').on('change', select_item);
new_row.find("#delete_row").click(function(){
$(this).parents("tr").remove();
select_item();
});
};
add_row();
$("#add_row").click(add_row);
});
</script>