tengo una mesa como
<table id="rowclick2"> <tbody> <tr > <td class="cb"><input type="checkbox" value="yes"></td> <td>row 1</td> <td>A</td> </tr> <tr > <td class="cb"><input type="checkbox" value="yes" ></td> <td>row 2</td> <td>B</td> </tr> <tr> <td class="cb"><input type="checkbox" value="yes"></td> <td>row 3</td> <td>C</td> </tr> </tbody> </table>donde quiero obtener cada celda (cuando se hace clic en el botón) en una fila cuyas casillas de verificación están marcadas
probé filtrar
$('#test').click(function(){ $('#rowclick2 tr').filter(':has(:checkbox:checked)').each( //get row values ); });Es bastante simple pero no puedo ver lo que me estoy perdiendo...
Aquí está el enlace jsfiddle ...
Ya casi estás ahí :)
Si desea todos los <td> s en filas donde la casilla de verificación está marcada:
$('#rowclick2 tr').filter(':has(:checkbox:checked)').find('td'); $('#rowclick2 tr').filter(':has(:checkbox:checked)').find('td').each(function() { // this = td element });Un ejemplo más elaborado está en JsFiddle.
POR CIERTO
El .filter(':has(:checkbox:checked)') se puede escribir como .has(':checkbox:checked') si usted, como yo, lo encuentra más fácil de leer.
Puedes probar este código:
$('#test').click(function(){ $('td.cb:checked').parents('tr').each( //get row values ); }HTH!
// select row and check box function condition $('#file_module_mainTableId').on('click', 'tbody tr', function(e){ //e.preventDefault(); var $this = $(this); // Detecting ctrl (windows) / meta (mac) key. if (e.ctrlKey || e.metaKey) { if($this.hasClass('ui-selected')){ $this.removeClass('ui-selected'); $this.find('input[type=checkbox]').removeAttr('checked'); if (e.target.type !== 'checkbox') { $(':checkbox', this).trigger('click'); } }else{ $this.addClass('ui-selected') $this.find('input[type=checkbox]').attr('checked', 'checked'); } } // Detecting shift key else if (e.shiftKey) { // Get the first possible element that is selected. var currentSelectedIndex = $('#file_module_mainTableId tbody tr.ui-selected').eq(0).index(); // Get the shift+click element var selectedElementIndex = $('#file_module_mainTableId tbody tr').index($this); // Mark selected between them if (currentSelectedIndex < selectedElementIndex) { for (var indexOfRows = currentSelectedIndex; indexOfRows <= selectedElementIndex; indexOfRows++) { $('#file_module_mainTableId tbody tr').eq(indexOfRows).addClass('ui-selected'); $('#file_module_mainTableId tbody tr').eq(indexOfRows).find('input[type=checkbox]').attr('checked', 'checked'); } } else { for (var indexOfRows = selectedElementIndex; indexOfRows <= currentSelectedIndex; indexOfRows++) { $('#file_module_mainTableId tbody tr').eq(indexOfRows).addClass('ui-selected'); $('#file_module_mainTableId tbody tr').eq(indexOfRows).find('input[type=checkbox]').attr('checked', 'checked'); } } } else { if (e.target.type !== 'checkbox') { $(':checkbox', this).trigger('click'); } } }); // checkbox class section $(".chkbox").change(function(e){ if ($(this).is(":checked")){ $(this).closest('tr').addClass("ui-selected"); } else { $(this).closest('tr').removeClass("ui-selected"); } }); // clrt + A select all table row $(document).on('keydown', function(e){ if(!$('body').hasClass('.modal-open')){ // use this condition for modal - deprecated here if(e.metaKey || e.ctrlKey && e.keyCode == 65){ $('#file_module_mainTableId tbody tr').addClass('ui-selected'); $('#file_module_mainTableId tbody tr').find('input[type=checkbox]').attr('checked', 'checked'); e.preventDefault(); return false; } } });