如何使用last()选择最后一个元素,而不需要遍历子元素
How to select last element with last() without going through sub elements
我试图改变我的ul
中最后一个li
的background-color
属性,id list1("列表项4"后的li)。但是,如果我运行$( "ul#list1 li" ).last().css( "background-color", "red" );
,则该函数选择最后一个li
,即list2 item1。
是否有一种方法可以告诉函数不通过子元素运行?
$( "ul#list1 li" ).last().css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
JS
$( "ul#list1 > li:last-child" ).css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
你也可以通过css来实现,你还需要使用>
来确定你想要使用的子元素。
ul#list1 > li:last-child{
background-color : red;
}
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
使用.children()方法,它只遍历直接子节点。
$( "ul#list1").children().last().css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
试试:last-child
$("#list1:last-child").css( "background-color", "red" );
$( "ul#list1 li:not(ul#list1 li ul li)" ).last().addClass('red')
.red{background-color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
定义:not(ul#list1 li ul li)
,然后添加样式为
使用$( "#list1 li:last-child" ).prev().css( "background-color", "red" );
选择list1 item 4
$( "#list1 li:last-child" ).prev().css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
你可以这样做:
$ (" ul # list1>李:最后"). css("背景颜色","红");
$( "ul#list1 > li:last" ).css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
试试这样:
var li = $( "ul#list1 li" );
var subLiLength = $("ul#list1 ul li").length;
li.eq(li.length - subLiLength - 1).css( "background-color", "red" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list1">
<li>list1 item 1</li>
<li>list1 item 2</li>
<li>list1 item 3</li>
<li>list1 item 4</li>
<li>
<ul>
<li>list2 item 1</li>
</ul>
</li>
</ul>
相关文章:
- 遍历类元素数组,并在jquery中选择同级元素
- Jquery遍历表元素
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 如何使用 document.querySelectorAll 遍历选定的元素
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- js循环遍历单击的元素子节点
- 循环遍历元素jquery选择器
- 如何使用jquery遍历具有动态添加元素的数组
- JavaScript元素遍历返回的值超出预期
- 遍历jQuery中的表元素
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 带有 ng-repeat 的 Angular JS 指令无法遍历子元素
- 遍历 DOM 以查找哪个元素具有焦点
- 循环遍历 DOM 元素时,是否有 for 循环的替代方法
- 遍历(获取)元素包装在 标记内
- 如何遍历 d3 中的值内部数组并添加相应的子元素
- JQuery/Javascript - 遍历值之后的所有 json 元素
- 遍历django模板中的json元素
- 如何在遍历表和添加新元素时获得tr的索引
- findout js代码遍历DOM中的哪个元素