正式学习jQuery选择器
摘要 先看看用传统的JavaScript方法获取页面中的元素,然后给元素添加行为事件的例子。 一 给网页中的所有p元素添加onclick事件。 p测试1/p p测试2/p var items = document.getElementsByTagName(p);//获取页面中的所有p元素 for(var i=0;i items.length;i++){ //
先看看用传统的JavaScript方法获取页面中的元素,然后给元素添加行为事件的例子。
一 给网页中的所有
元素添加onclick事件。
测试1
测试2
var items = document.getElementsByTagName("p");//获取页面中的所有p元素
for(var i=0;i < items.length;i++){ //循环
items[i].onclick = function(){ //给每一个p添加onclick事件
//doing something...
alert("suc!");
}
}
二 使一个特定的表格隔行变色。
第一行 | 第一行 |
第二行 | 第二行 |
第三行 | 第三行 |
第四行 | 第四行 |
第五行 | 第五行 |
第六行 | 第六行 |
var item = document.getElementById("tb"); //获取id为tb的元素(table)
var tbody = item.getElementsByTagName("tbody")[0]; //获取表格的第一个tbody元素
var trs = tbody.getElementsByTagName("tr"); //获取tbody元素下的所有tr元素
for(var i=0;i < trs.length;i++){//循环tr元素
if(i%2==0){ //取模. (取余数.比如 0%2=0 , 1%2=1 , 2%2=0 , 3%2=1)
trs[i].style.backgroundColor = "#888"; // 改变 符合条件的tr元素 的背景色.
}
}
三 对多选框进行操作,输出选中的多选框的个数。
btn.onclick = function(){ //给元素添加onclick事件
var arrays = new Array(); //创建一个数组对象
var items = document.getElementsByName("check"); //获取name为check的一组元素(checkbox)
for(i=0; i < items.length; i++){ //循环这组数据
if(items[i].checked){ //判断是否选中
arrays.push(items[i].value); //把符合条件的 添加到数组中. push()是javascript数组中的方法.
}
}
alert( "选中的个数为:"+arrays.length );
}
上面的几个例子都是用传统的JavaScript方法进行操作,中间使用了getElementByld()、getElementsByTagName()和getElementsByName()等方法,然后动态地给元素添加行为或者样式。这些虽然都是JavaScript中最简单的操作,但不断重复使用getElementByld()和getElementsByTagName()等冗长而难记的名称,使越来越多的开发人员歼始厌倦这种枯燥的写法,并且有时候为了获取网页中的某个元素,需要编写很多的getElementByld()和getElementsByTagName()方法。然而在jQuery中,类似的这些操作则是非常简洁。
下面学习如何使用jQuery获取这些元素。
jQuery选择器分为基本选择器、层次选择器、过滤选择器和表单选择器。在下面的章节中将分别用不同的选择器来查找HTML代码中的元素并对其进行简单的操作。为了能更清晰、直观地讲解选择器,首先需要设计一个简单的页面,里面包含各种
然后用CSS对这些元素进行初始化大小和背景颜色的设置,CSS代码如下:
div,span,p {
width:140px;
height:140px;
margin:5px;
background:#aaa;
order:#000 1px solid;
float:left;
font-size:17px;
font-family:Verdana;
}
div.mini {
width:55px;
height:55px;
background-color: #aaa;
font-size:12px;
}
div.hide {
display:none;
}
一、基本选择器
基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它通过元素id、class和标签名等来查找DOM元素。在网页中,每个id名称只能使用一次,class允许重复使用。
基本选择器的介绍说明如下表所示。
选择器 | 描 述 | 返 回 | 示 例 |
---|---|---|---|
#id | 根据给定的id匹配一个元素 | 单个元素 | $("#test")选取id为test的元素 |
.class | 根据给定的类名匹配元素 | 集合元素 | $(".test")选取所有class为test的元素 |
element | 根据给定的元素名匹配元素 | 集合元素 | $("p")选取所有的 元素 |
* | 匹配所有元素 | 集合元素 | $("*")选取所有的元素 |
selector1,selectr2 | |||
……,selectorN | 将每一个选择器匹配到元素合并后一起返回 | 集合元素 | $("div,span,p,myClass")选取所有 ,和拥有class为myClass的 标签的一组元素 |
可以使用这些基本选择器来完成绝大多数的工作。下面用它们来匹配刚才HTML代码中的
功 能 | 代 码 |
---|---|
改变id为one的元素的背景色 | $('#one').css("background", "#bbffaa") |
改变class为mini的所有元素的背景色 | $('.mini').css("background", "#bbffaa") |
改变元素名是 的所有元素的背景色 | $('div').css("background", "#bbffaa") |
改变所有元素的背景色 | $('*').css("background", "#bbffaa") |
改变所有的元素和id为two的元素的背景色 | $('span, #two').css("background", "#bbffaa") |
下面利用刚学会的jQuery选择器以及隐式迭代的特性来重写上面的3个例子。
使用jQuery选择器重写例子1
$("p").click(function(){ //获取页面中的所有
元素,给每一个
元素添加onclick事件
//doing something
})
使用jQuery选择器重写例子2,代码如下:
$('#tb tbody tr:even').css("backgroundColor","#888");
//获取id为tb的元素,然后寻找他下面的tbody标签,再寻找tbody下索引值是偶数的tr元素,
//改变它的背景色.
使用jQuery选择器重写例子3:
$('#btn').click(function(){ //获取id为btn的元素,给它添加onclick事件
var items = $("input[name='check']:checked");
//获取name为check的一组元素,然后选取它们中选中(checked)的。
alert( "选中的个数为:"+items.length )
})
通过几个简单的jQuery选择器就可以将例子改写,而且它们的运行效果与改写前是完全相同的。