Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中添加基于复选框选中的行和删除基于未选中的行_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery中添加基于复选框选中的行和删除基于未选中的行

Javascript 如何在jquery中添加基于复选框选中的行和删除基于未选中的行,javascript,jquery,Javascript,Jquery,这是我为获取复选框值并添加行而编写的代码 任何人都可以查看此代码并找到此代码的问题所在吗 $('.dm_list_data')。在('change',function()上{ var$sel=$(本); val=$(this.val(); $opts=$sel.children(); prevUnselected=$sel.data('unselected'); var currenselected=$opts.not(“:selected”).map(函数(){ 返回此.value }).g

这是我为获取复选框值并添加行而编写的代码 任何人都可以查看此代码并找到此代码的问题所在吗

$('.dm_list_data')。在('change',function()上{
var$sel=$(本);
val=$(this.val();
$opts=$sel.children();
prevUnselected=$sel.data('unselected');
var currenselected=$opts.not(“:selected”).map(函数(){
返回此.value
}).get();
var currSelected=$('.dm_list_data').val();
var post_数据={
“交付id”:已选中
}
控制台日志(post_数据);
$.ajax({
类型:“POST”,
url:base\u url+“课程/topicadd/get\u交付方法\u详细信息”,
数据:post_数据,
数据类型:“JSON”,
成功:功能(msg){
var JSONObject=JSON.parse(msg);
forEach(函数(元素){
var delivery\u mtd\u name=element.delivery\u mtd\u name;
var ftfl_小时=element.ftfl_小时;
风险值评估小时数=要素评估小时数;
var slt_hours=element.slt_hours;
var标记=”;
$(“表tbody”)。追加(标记);
});
}
});

});在创建新元素和追加之前,只需检查它是否存在。如果不存在,则添加它。只需为文本框和if条件添加id。下面的代码可能有语法错误,我刚刚在浏览器中测试过。也许需要一些调整

$('.dm_list_data')。在('change',function()上{
var$sel=$(本);
val=$(this.val();
$opts=$sel.children();
prevUnselected=$sel.data('unselected');
var currenselected=$opts.not(“:selected”).map(函数(){
返回此.value
}).get();
var currSelected=$('.dm_list_data').val();
var post_数据={
“交付id”:已选中
}
控制台日志(post_数据);
$.ajax({
类型:“POST”,
url:base\u url+“课程/topicadd/get\u交付方法\u详细信息”,
数据:post_数据,
数据类型:“JSON”,
成功:功能(msg){
var JSONObject=JSON.parse(msg);
forEach(函数(元素){
var delivery\u mtd\u name=element.delivery\u mtd\u name;
var ftfl_小时=element.ftfl_小时;
风险值评估小时数=要素评估小时数;
var slt_hours=element.slt_hours;
if($('#'+delivery_mtd_name).length==0)///添加了此行
{
//在第行下方更新
var标记=”;
$(“表tbody”)。追加(标记);
}
});
}
});

});我建议创建一个包含选中元素的hashmap。触发Onchange只会更新hashmap并调用函数来创建/删除行。hashmaps的编写速度更快,也更容易。将您的键作为表行的id。根据选中或取消选中的条件,调用所需的函数。

我在angular中实现了这一点。对于jquery,我需要创建一个提琴。我会在一段时间内回复你。请期待积极的回应,帮助我。你能提供你的工作小提琴吗?我会用你使用的正确方法来纠正它。如何创建fiddle我不知道,你会说fiddle的步骤吗?搜索JSFIDLE或codepen。将您的html css和jquery部分放在那里(工作部分)。然后我会调查一下。我已经更新了你的代码并在上面发布了。它不可见吗?我已在第一个文本框上更新了id为““+delivery\u mtd\u name+”、在var标记之前更新了if($(“#”+delivery\u mtd\u name).length==0的var标记。