2012-07-12 60 views
1

我想获取当前行的ID值和选定的单选按钮的值,该单选按钮是其中一个单元格中的组,但具有唯一的名称并且没有其他名称行中的单选按钮。jQuery'this'通过表循环

它通过循环行确定,但我不能得到正确的语法来获取值,我很感兴趣。

有一次通过每个“TD”寻找一个ID循环。在另一个它说.attr不可用于'this'对象。

function getWMarkImgs() { 
     $('#wmkTable tr').each(function() { 
     var v1 = $(this).tr.attr('id'); 
     var v2 = $(this input[name=group1]:checked).val(); 
     $('#dbgDIV').append('V1=' + v1 +' V2=' v2 + '<hr>'); 
    }); 

我总是觉得这个对象有问题。

任何帮助感激地收到。

+0

表格的HTML? – Jared 2012-07-12 13:36:57

回答

3
function getWMarkImgs() { 
     $('#wmkTable tr').each(function() { 
     var v1 = $(this).attr('id'); 
     var v2 = $(this).find("input[name=group1]:checked").val(); 
     $('#dbgDIV').append('V1=' + v1 +' V2=' v2 + '<hr>'); 
    }); 

OR

function getWMarkImgs() { 
      $('#wmkTable tr').each(function() { 
      var v1 = $(this).attr('id'); 
      var v2 = $(this).children().children("input[name=group1]:checked").val(); 
      $('#dbgDIV').append('V1=' + v1 +' V2=' v2 + '<hr>'); 
     }); 

OR(最好的)

function getWMarkImgs() { 
      $('#wmkTable tr').each(function() { 
      var v1 = this.id; 
      var v2 = $(this).find("input[name=group1]:checked").val(); 
      $('#dbgDIV').append('V1=' + v1 +' V2=' v2 + '<hr>'); 
     }); 
+0

仅仅使用'this.id'。尽管任何缓存'$(this)'然后使用'.attr('id')'的样本将会被忽略。 – 2012-07-12 13:43:50

+0

第三个选项'this.id'循环5次表格行中td元素的数目+ tr本身。 – mcl 2012-07-12 14:18:35

+0

不可能... – 2012-07-12 14:20:22

1

尝试find()方法:

获取每个元素的后代在当前匹配的元素,通过一个选择器,jQuery对象,或元件过滤。

function getWMarkImgs() { 
    $('#wmkTable tr').each(function() { 
     var v1 = $(this).attr('id'); 
     var v2 = $(this).find("input[name=group1]:checked").val(); 
     $('#dbgDIV').append('V1=' + v1 +' V2=' v2 + '<hr>'); 
    }); 
} 
0

试试这个

function getWMarkImgs() { 
    var div = $('#dbgDIV'); 
    $('#wmkTable tr:has(input[name=group1]:checked)').each(function() { 
     var me = $(this); 
     var v2 = me.find('input[name=group1]').val(); 
     div.append('V1=' + me.attr('id') +' V2=' v2 + '<hr>'); 
});