如何将样式应用于JQuery数组中的特定元素
How to apply style to a specific element in JQuery array
我正在学习JQuery的基础知识,但无法解决这个问题:给定3个绿色<li>
元素,将第1个和第3个元素变成红色,将第2个元素变成橙色。
代码:
<!DOCTYPE html>
<html>
<head>
<title>element</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" ></script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<style type="text/css" media="screen">
ul li{color: green;}
</style>
</head>
<body>
<ul>
<li>text 1</li>
<li>text 2</li>
<li>text 3</li>
</ul>
<script>
var lis = $("ul li").css("color", "red");
</script>
</body>
</html>
我可以把所有元素都变成红色,但我不能把第二个变成橙色:lis[1].css("color", "orange");
不起作用。
您在DOM对象上调用css而不是jQuery对象,因为索引器[]
为您提供了DOM对象您需要eq()而不是索引器
实时演示
lis.eq(1).css("color", "orange");
描述:将匹配的元素集减少为指定的索引。
您也可以直接在选择器中使用:eq()
$("ul li:eq(1)").css("color", "red");
您可以通过应用:nth-child
选择器:使用纯CSS来实现它
ul li:nth-child(2) {
color: red;
}
Fiddle演示
由于您正在学习jQuery
,因此可以使用:even
选择器:
var lis = $('ul li');
lis.filter(':even').css('color', 'red'); // Zero based indexing selects 0 and 2
lis.filter(':odd').css('color', 'orange'); // Selects 1
注意,来自文档:
因为:even是jQuery扩展,而不是CSS规范的一部分,所以使用:even的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在使用:even选择元素时获得最佳性能,首先使用纯CSS选择器选择元素,然后使用.filter(":even").
请在document.ready()中编写代码,并使用eq
所有元素
$(document).ready(function(){
$("ul li").css("color", "red");
});
对于特定元素
$(document).ready(function(){
$("ul li:eq(0)").css("color", "red"); //for first element
$("ul li:eq(1)").css("color", "red");//for second element
$("ul li:eq(2)").css("color", "red");//for third element
});
如果您只想选择第一个元素,请使用。。。
使用CSS pesudo选择器:类型的第一个
$("li:first-of type").css("color","orange");
或者您可以使用选择器中内置的jQuery
$("li:first").css("color","orange");
两者都会很好。。。但是jQuery方法比CSS的pesudo选择器相对较慢所以使用第一个可以获得更好的性能
现在,如果您想选择任何其他索引,请使用.eq()
$(selectorName.eq(index)).css(…);
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- 用于检查数组中是否存在元素的javascript自定义方法
- 在数组中的一个元素上设置多个值
- 从组件状态的数组中删除元素
- Mongoose-在更新中删除数组元素
- 从数组中删除元素的最佳方法是:javascript/jquery
- 数组中元素(字符串)的总和
- javascript数组元素是否知道其封闭数组
- 查找数组javascript中包含的元素类型
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- 一些元素没有从数组中删除
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 元素不会添加到Javascript数组中
- 如何从另一个带下划线的数组中筛选带元素的数组
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- Js接受两个值之间的元素(数组)