突出显示简单的数字行?

时间:2012-04-11 08:21:13

标签: javascript jquery highlight

我有一个javascript循环,想要突出显示一些数字

for(i=0;i<=100;i++){
  $("#mydiv").append("<span>"+i+"</span>");
}

现在我想选择1,5,9,13,17 ...每隔4,但从1开始并突出显示它。每一秒都很容易:

for(i=0;i<=100;i++){
  var bool = false;
  if(bool){
    $("#mydiv").append("<span>"+i+"</span>");
    bool = false;
  } else {
    $("#mydiv").append("<span class='highlight'>"+i+"</span>");
    bool = true;
  }
}

我该怎么做?

7 个答案:

答案 0 :(得分:4)

我很惊讶人们推荐jQuery的n-child选择器,但不仅仅是通过CSS直接推荐nth-child样式。

在样式表中:

#mydiv span:nth-child(4n-2) { background-color: yellow }

答案 1 :(得分:3)

您可以使用nth-child选择器进行此操作。看到这个js小提琴:

http://jsfiddle.net/pJZkL/

$(function(){
    var ap = "";
    for(i=0;i<=100;i++){
        ap+="<span class='nr'>"+i+", </span>";
    }
    $("p").append(ap);
});

现在的逻辑是CSS:

.nr{
    color: blue;
}
.nr:nth-child(4n-2){
    color: red;
}

答案 2 :(得分:2)

答案 3 :(得分:1)

for(i=0;i<=100;i++){
  if(i%4==1){
    $("#mydiv").append("<span class="highlight">"+i+"</span>");
  } else {
    $("#mydiv").append("<span>"+i+"</span>");
  }
}

答案 4 :(得分:1)

您应该使用nth-child选择器

$('#mydiv span:nth-child(4n+1)').addClass('highlight');

答案 5 :(得分:1)

我不确定我的问题是否正确。据我所知,以下循环可以帮助你。

var inc = 1;
for(i=0;i<=100;i++){
  if(i !== inc ){
    $("#mydiv").append("<span>"+i+"</span>");
  } else {
    $("#mydiv").append("<span class="highlight">"+i+"</span>");
    inc += 4;
  }
}

答案 6 :(得分:0)

 var pre = 0;
 for(i=0;i<=100;i++){
   if(i === 1 || (i-4) === pre ){
      $("#mydiv").append("<span class="highlight">"+i+"</span>");
      pre = i;
   } else {
      $("#mydiv").append("<span>"+i+"</span>");
   }
 }

这应该这样做。我没有测试过它..干杯