CSS:在 for 循环中使用第 n 个子项

CSS: Using nth-child in a for loop

本文关键字:for 循环 CSS      更新时间:2023-09-26

我正在尝试创建三个数组,并用从tr的每个子元素收集的特定信息填充它们。

我不断收到语法错误,但是当我用数字替换子元素时,下面的代码工作正常(它只是用相同的字符串填充整个数组)。

我已经坚持了一段时间了,所以任何语法帮助将不胜感激!我这样做的方式是否正确?



var str = new Array ();
for (i =1; i<=5; i++){
str[i] = $("tr:nth-child(i+2) > td.short-desc > a > div > div.col-lg-5.col-         sm-6.hidden-xs > div.pull-left > div > div:nth-child(2) > img ").attr('src')
 }
var pos = new Array ();
for (i=1; i<=5; i++){
pos[i] = str[i+2].search("traveler/");
}
var rating = new Array ();
for (i=1; i<=5; i++){
rating[i] = str[i+2].substring(pos[i+2]+ 9, pos[i+2] +12);
}

jQuery选择器无法访问周围的上下文,因此它们无法i看到变量。您有两种选择:

  1. 计算循环中的值,然后将结果传递给 jQuery: $("tr:nth-child(" + (i+2) + ") > ..."

  2. 获取<tr>元素的列表,迭代它们,然后对每个元素使用选择器。

第二个解决方案如下所示:

var rows = $('<tr>'); // get all rows as array
for( i=1; i<=5; i++) {
   // search a child of a certain row
   $("td.short-desc > a > div > ...", rows[i+2]);
}