I'm trying to get values of a table with jQuery. Every table row has a checkbox at the begining. How can I copy data of each row, but only if it's checked. All checkboxes and rows has the same class. Now I'm using this code:
var table = $("table");
var allRows = [];
table.find('tr').each(function (i, el) {
if($('input:checkbox:checked').length > 0){
var $tds = $(this).find('td'),
name = $tds.eq(2).text(),
surname = $tds.eq(4).text();
allRows.push(surname+";"+name+";"+"\n");
}
});
allRows = allRows.join("");
But it's getting all the lines. How can I do this only for lines which are checked?
I'm trying to get values of a table with jQuery. Every table row has a checkbox at the begining. How can I copy data of each row, but only if it's checked. All checkboxes and rows has the same class. Now I'm using this code:
var table = $("table");
var allRows = [];
table.find('tr').each(function (i, el) {
if($('input:checkbox:checked').length > 0){
var $tds = $(this).find('td'),
name = $tds.eq(2).text(),
surname = $tds.eq(4).text();
allRows.push(surname+";"+name+";"+"\n");
}
});
allRows = allRows.join("");
But it's getting all the lines. How can I do this only for lines which are checked?
Share Improve this question asked May 6, 2017 at 12:32 passwdpasswd 3,3533 gold badges15 silver badges25 bronze badges 1- Do you have jsfiddle of this? – Yuvraj Commented May 6, 2017 at 12:34
2 Answers
Reset to default 9$('.theClass:checkbox:checked')
will give you all the checked checkboxes with the class theClass
.
See also Get all checked checkboxes
As of now you are checking any checkbox is checked. the condition needs to be changed.
You need to check the :checked
state of the chechbox in current row while iterating.
if($(this).find(':checkbox:checked').length > 0){
//your existing code
}