gpt4 book ai didi

javascript - 使用 Javascript/jquery 如何从选定行中的每个单元格获取值

转载 作者:行者123 更新时间:2023-12-01 02:30:30 25 4
gpt4 key购买 nike

我试图弄清楚如何获取行中的每个单元格值并将其分配给变量。特别是复选框值

这是表格的示例

<table id="mytable" class="table">
<thead>
<b><tr><th>Header1</th><th>Header2</th><th>Header2</th><th>Header3</th></tr></b>
</thead>
<tr>
<td>value1</td>
<td>value1</td>
<td>
<label><input id="divpriority" ng-model="priority" type="checkbox" /> Option1</label>

<label><input id="divsource" type="checkbox" /> Option2</label>

<label> <input type="checkbox" checked/>Otion3</label>
</td>
<td><br/><br/><button id="buttonvalues" type="button" class="btn-primary">GetValues</button></td>
</tr>
</table>

因此,当单击当前行中的“GetValues”按钮时,每个单元格中的值都会分配给一个变量。

我正在考虑类似这样的事情:(我知道这可能是不正确的)

  $("#mytable table tbody ").on("click", "#buttonvalues", function() {
var header1;
var header2;
var Options = new Array()

var header1 = $(this).closest('tr').header1.val ;
var header2 = $(this).closest('tr').header2.val

Options = //Not sure what to do here

使用 Javascript/jquery 如何从选定行中的每个单元格获取值,并通过单击该行中包含的按钮将这些值分配给变量。

请强调将复选框中的标签名称分配给数组变量。我想获取 checkin 数组的复选框的名称

最佳答案

如果您想保存行中的每个单元格值,类似这样的操作就可以了。

Demo Fiddle

代码:

$("#mytable").on("click", ".btn-primary", function () {
var values = [];
var $header = $(this).closest('table').find('thead th');
var $cols = $(this).closest('tr').find('td');

$header.each(function(idx,hdr) {
var $curCol = $cols.eq(idx);
var $labels = $curCol.find('label');
var value;

if($labels.length) {
value = {};
$labels.each(function(lblIdx, lbl) {
value[$(lbl).text().trim()] = $(lbl).find('input').is(':checked');
});
} else {
value = $curCol.text().trim();
}
values.push( { name: $(hdr).text(), value: value } );
});

console.log(JSON.stringify(values, null, 2));
});

结果:

[
{
"name": "Header1",
"value": "value1"
},
{
"name": "Header2",
"value": "value1"
},
{
"name": "Header3",
"value": {
"Option1": false,
"Option2": false,
"Option3": true
}
},
{
"name": "Header4",
"value": "GetValues"
}
]

要获取数组中每个选中选项的名称,请将 header 循环更改为:

$header.each(function(idx,hdr) {
var $curCol = $cols.eq(idx);
var $labels = $curCol.find('label');
var value;

if($labels.length) {
// Filters for labels containing a checked checkbox
value = $labels.filter(function(lblIdx) {
return $(this).find('input').is(':checked');
}).map(function(valIdx, valLbl) { // Maps the result to the text value of the label
return $(valLbl).text().trim();
}).get(); // returns just the array of values
} else {
value = $curCol.text().trim();
}
values.push( { name: $(hdr).text(), value: value } );
});

输出 Demo Fiddle :

[
{
"name": "Header1",
"value": "value1"
},
{
"name": "Header2",
"value": "value1"
},
{
"name": "Header3",
"value": [
"Option1",
"Option3"
]
},
{
"name": "Header4",
"value": "GetValues"
}
]

关于javascript - 使用 Javascript/jquery 如何从选定行中的每个单元格获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18793954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com