循环直到遇到一个班然后做点什么

时间:2015-05-07 07:08:30

标签: javascript html zepto

http://jsfiddle.net/ytytb5hu/

如何使用循环将所有for (int i = 0; i < arrayWithNumbers.length; i++) { if (i % 5 == 0 && i != 0) // end of the line { System.out.println(arrayWithNumbers[i]); } else { System.out.print(arrayWithNumbers[i]); } } 最多为p的红色?

class="here"
<p>1</p>
<p>2</p>
<p>3</p>
<p class="here">4</p>
<p>5</p>

6 个答案:

答案 0 :(得分:3)

尝试排除:not()处的选择器,返回已过滤的集合

$("p:not(.here, .here ~ p)").css("color", "red");
.here {
    border:1px solid;
}
p {
    color:blue;
    display:inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<p>1</p>
<p>2</p>
<p>3</p>
<p class="here">4</p>
<p>5</p>

答案 1 :(得分:2)

这样的东西? :

$('p').prevUntil('.here').css('color', 'red');

<强> Demo

如果您只想更改特定元素,可以添加第二个参数:

$('p').prevUntil('.here', 'p').css('color', 'red');

<强> Demo

函数prevUntil()将选择排除与选择器匹配的元素的所有先前兄弟元素。

<强>参考

.prevUntil()

答案 2 :(得分:0)

可能有更好的方法,但这可行:

$('p:eq(0)').addClass('red').nextUntil('.here').addClass('red');
.red{
    
    color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>1</p>
<p>2</p>
<p>3</p>
<p class="here">4</p>
<p>5</p>

答案 3 :(得分:0)

如果您知道索引

,则可以使用小于运算符lt(index)
$('p:lt(4)').css('color', 'red');

答案 4 :(得分:0)

您可以获得.here索引并使用lt

$('p:lt(' + $('p.here').index() + ')').css('color', 'red');

jsfiddle DEMO

答案 5 :(得分:0)

document.getElementsByTagName("p")[3].setAttribute('class','here');

document.getElementById("container").getElementsByTagName("p")[3].setAttribute('class','here');

的CSS:

.here{
    color:red;
}