2014-12-05 53 views
2

我刚刚完成了我的项目的一个环节,它需要遍历HTML表格的行并根据td的类执行文本操作。我用两种不同的方法来处理这个问题,现在我想知道哪一种被认为是最好的编码实践。另外,使用一种方法比另一种更有优势吗?jQuery每个增量计数器与选择器

方法1:

$('#table tr').each(function(){ 
    var something = $(this).find('[class*=someClass]').html(); 
    //Do something with 'something' 
}); 

方法2:

var x = 0; 
$('#table tr').each(function(){ 
    var something = $(this).find('.someClass' + x).html(); 
    //Do something with 'something' 
    x++; 
}); 
+3

两者都做两件不同的事情...... – 2014-12-05 21:22:50

+0

顺便说一句,'$()。each(function(index){})'。使用索引而不是变量。而且id是唯一的,所以它可能只是你的例子,但是'$('#table')。each'是无用的。 – 2014-12-05 21:24:57

+0

@ Karl-AndréGagnon哎呀。监督。我纠正了它。 – Michael 2014-12-05 21:27:36

回答

1

这可能更多意见为主,但就个人而言,我会做到这一点:

$('#table tr').each(function(i){ 
    var something = $(this).find('.someClass' + i).html(); 
    //Do something with 'something' 
}); 

的索引每个元素都作为参数传递。

编辑:

要展开什么卡尔AndréGagnon说,这两个” .someClass'选择将表现不同。在第一个例子中,他们将选择具有'someClass'的所有元素,而不管任何数字后缀。第二个例子将只选择具有指定数字后缀的类。

如果你正在做同样的事情到每个” .someClass'元素,无论在类的数量,你可能不需要一个‘每个’可言的,可能只是一个选择,如启动:

'#table tr [class*=someClass]'