我有
<table id="ok">
<tr><div class="red">Red</div></tr>
<tr><div class="blue">Blue</div></tr>
<tr><div class="red">Red</div></tr>
<tr><div class="blue">Blue</div></tr>
<tr><div class="red">Red</div></tr>
<tr><div class="red">Red</div></tr>
<tr><div class="red">Red</div></tr>
<tr><div class="red">Red</div></tr>
<tr><div class="blue">Blue</div></tr>
<tr><div class="blue">Blue</div></tr>
.......
List goes on and on
</table>
我想获得表“ok”的前10个元素,从那些10,我想得到所有类“红色”的元素 在这种情况下,我只会得到6个元素。
我只走了这么远
var total = $("#ok tr"); var red = total.slice(1, 11);
答案 0 :(得分:4)
你可以使用一个选择器,使用jQuery的:lt
extension和一个后代选择器:
var redsWithinFirst10Rows = $("#ok tr:lt(10) .red");
说:“在id
ok
的元素中,选择零基索引小于10的行(所以,0-9)并选择这些行的后代。班.red
。“ (是的,jQuery扩展选择器使用基于0的索引而不是CSS中通常的基于1的索引。)
直播示例:
var redsWithinFirst10Rows = $("#ok tr:lt(10) .red");
redsWithinFirst10Rows.css("color", "red");
<table id="ok">
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="red">Red</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
<tr><td><div class="blue">Blue</div></td></tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
请注意,您必须修复自己的标记,div
无法作为tr
的直接子项。
答案 1 :(得分:2)
您的方法中缺少的是find()
var red = total.slice(0, 10).find('.red');
切片行,然后在这些行中找到红色类
答案 2 :(得分:-1)
$(".red").slice(0,10);