Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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_Html_Checkbox - Fatal编程技术网

Javascript Jquery-选中列复选框,然后对这些行执行一些操作

Javascript Jquery-选中列复选框,然后对这些行执行一些操作,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我一直在努力寻找一个与我的问题相匹配的答案,但没有什么真正具体的答案。我还在学习,不知道我到底错过了什么 所以我的代码可以在这里找到: 这是我工作的简化版本。在最终版本中,我将把一个csv文件上传到您在那里看到的html表(id=“dvCSV”)。上传后,该表将看起来如图所示(添加了下拉列表和一列复选框)。当我生成复选框时,复选框是“预先选中的”,但我希望用户能够“关闭”我不想计算的行 我将向您介绍整个流程: 此函数用于读取用户指定的列。我不知道他们将把数据上传到哪一列 function Che

我一直在努力寻找一个与我的问题相匹配的答案,但没有什么真正具体的答案。我还在学习,不知道我到底错过了什么

所以我的代码可以在这里找到:

这是我工作的简化版本。在最终版本中,我将把一个csv文件上传到您在那里看到的html表(id=“dvCSV”)。上传后,该表将看起来如图所示(添加了下拉列表和一列复选框)。当我生成复选框时,复选框是“预先选中的”,但我希望用户能够“关闭”我不想计算的行

我将向您介绍整个流程: 此函数用于读取用户指定的列。我不知道他们将把数据上传到哪一列

function CheckLocations() {
//Checks the uploaded data for the locations of the Lat/Lon Data based on user dropdowns
colLocs[0] = ($('#Value_0 :selected').text());
colLocs[1] = ($('#Value_1 :selected').text());
colLocs[2] = ($('#Value_2 :selected').text());
colLocs[3] = ($('#Value_3 :selected').text());
LatColumn = colLocs.indexOf("Lat");
LongColumn = colLocs.indexOf("Long");
}

function AllTheSame(array) { //if they do not designate the checkboxes, I prompt them to
var first = array[0];
return array.every(function (element) {
    return element === first;
});
}
此函数获取指定列中的所有数据,并将它们放入数组中进行计算

function data2Array() {
//gets the lat and long data from the assigned columns and transfers them to an array for calculation

$("#dvCSV tr td:nth-child(" + (LatColumn + 1) + ")").each(function () {
    var tdNode = $("<td/>");
    tdNode.html(this.innerHTML);
    LatData.push(tdNode.text());
});
LatData.splice(0, 2);
LatData.unshift(1, 1);

$("#dvCSV tr td:nth-child(" + (LongColumn + 1) + ")").each(function () {
    var tdNode = $("<td/>");
    tdNode.html(this.innerHTML);
    LongData.push(tdNode.text());
});
LongData.splice(0, 2); //these two lines remove the first two items then replace them with 0
LongData.unshift(1, 1);
}

希望我能把问题说清楚。任何帮助都将不胜感激。

当您的表生成到tr元素中时,请传递一个类。然后为您的复选框创建一个on-change方法。请在此处阅读更多信息:

此外,如果无法从表中获取插入的行id,则在js外部启动一个计数器,如下所示

计数器=0

然后在循环内部添加计数器++

所以


这将使您朝着正确的方向前进。

隐藏行是否会使它们在以后导出时“不可见”?如果它们在屏幕上不可见,则无法打印。
function removeChecks() {
$("#dvCSV th:last-child, #dvCSV td:last-child").remove();
}

function makeCheckArray() {
var searchIDs = $("#dvCSV tbody td:last()     input:checkbox:checked").map(function () {
    return $(this).val();
}).get();
alert(searchIDs);
}
<tr class="row-1">
<td>
</td>
</tr>
$( "tr" ).on( "change",  function() {

//do something
$(this+'.row-'+(counter)).hide();

});