以下代码有什么问题。我试图循环使用特定id的子节点,并仅为特定的子节点分配css类。
var firstRC = $("#id_1").children();
for(j=0;j<firstRC.length;j++) {
if(j>5) {
$("#id_1:eq(j)").addClass("cssClass");
}
}
答案 0 :(得分:1)
您的问题是j
变量是一个字符串。您需要将其恢复到JavaScript代码中。
var firstRC = $("#id_1").children();
for(j=0;j<firstRC.length;j++) {
if(j>5) {
$("#id_1:eq(" + j + ")").addClass("cssClass");
}
}
当然,如果您尝试为大于5的所有内容设置类,则可以执行此操作:
$("#id_1 :gt(5)").addClass("cssClass");
答案 1 :(得分:1)
因为jQuery选择器中的j
只是字符串的一部分而不是变量。您需要通过连接创建选择器字符串:
var firstRC = $("#id_1").children();
for(j=0;j<firstRC.length;j++) {
if(j>5) {
$("#id_1 :eq(" + j + ")").addClass("cssClass");
}
}
此外,您需要:eq
之前的空格,或者您将选择标识为id_1
的第j个元素,而不是具有id_1
的元素中的第j个子元素。
然而,你做得很复杂。 jQuery有一个gt
选择器,允许您选择所有元素 * g * reater * t *某个特定索引:
$("#id_1 :gt(5)").addClass("cssClass");
如果你确实需要遍历几个元素,你应该查看jQuery的each
方法,这比<{1}}循环更容易使用更好。在for
循环内,each
指的是当前元素。
示例:
this
答案 2 :(得分:1)
使用:gt
选择器或.slice()
方法获取所需的节点。
$("#id_1").children().slice(5).addClass("cssClass");