循环使用jquery每个而不是td:nth child(3)

时间:2014-11-17 03:39:15

标签: javascript jquery internet-explorer

我希望更改此代码,因为nth-child(3)无法在IE8上运行。如何在jquery中将此代码和其他部分代码更改为jquery.each

var allValues = $('#myTable td:nth-child(3) input').map(function() {
    return $(this).val();
}).toArray();

see FIDDLE DEMO

1 个答案:

答案 0 :(得分:1)

您可能不需要使用.each();您可以使用过滤器执行nth-child的工作,如下所示:

var allValues = $('#myTable td').filter(function() {
    return $(this).closest('tr').children('td').index( this ) === 2;
})
.find('input').map(function() {
    return $(this).val();
}).toArray();

请记住jQuery 2.x supports IE > 8.

 var inputs = $('#myTable td:nth-child(3) input').filter(function() { return $(this).val() == value; });

将是:

var inputs = $('#myTable td').filter(function() {
    return $(this).closest('tr').children('td').index( this ) === 2;
})
.find('input').filter(function() { return $(this).val() == value; });