我们在第一章的时候,主要讲了jQuery的选择器,今天我们来讲一下操作函数。
jQuery使用css()为指定的元素设置样式值或获取样式值。
语法:
- css(“name”,“value”) ;//两个加引号
- css({“name”:“value”, “name”:“value”,“name”:“value”…}) ;//加引号,别忘了大括号。
示例:
$(this).css("border","5px solid #f5f5f5");
或
$(this).css({"border":"5px solid #f5f5f5","opacity":"0.5"});
语法:
- $(selector).addClass(class);
- $(selector).addClass(class 1 class 2 … class N);
示例:
.text{ padding:10px;}
.content {background-color:#FFFF00; }
.border {border:1px dashed #333; }
$("h2").mouseover(function() {
$("p").addClass("content border");
});//添加多个用空格隔开,只写class名不加‘.’
语法:
- $(selector).removeClass(“class”) ;
- $(selector).removeClass("class1 class 2 … class N ") ;
示例:
$("h2").mouseout(function() {
$("p").removeClass("text content");
});
语法:
- toggleClass(class):有该class则移除,没有则添加。
示例:
$("h2").click(function() {
$("p").toggleClass("content border");
});
语法:
$(selector). hasClass(class);//判断是否包含指定的样式
示例:
$("h2").mouseover(function() {
if(!$("p").hasClass("content ")){
$("p").addClass("content ");
}
});
//-------------------------华丽的分割线
$("h2").mouseout(function() {
if($("p").hasClass("content ")) {
$("p").removeClass("content ");
}
});
html()可以对HTML代码进行操作,类似于JS中的innerHTML。
语法:
$(“div. left”).html(); //获取元素中的html代码
$(“div. left”).html(“
”); //设置元素中的html代码…
text()可以获取或设置元素的文本内容。
语法:
- $(“div. left”).text(); //获取元素中的文本内容
- $(“div. left”).text(“
”); //设置元素中的文本内容…
| 语法格式 | 参数说明 | 功能描述 |
|---|---|---|
| html( ) | 无参数 | 用于获取第一个匹配元素的HTML内容或文本内容 |
| html(content) | content为元素的HTML内容 | 用于设置所有匹配元素的HTML内容或文本内容 |
| text( ) | 无参数 | 用于获取所有匹配元素的文本内容 |
| text (content) | content为元素的文本内容 | 用于设置所有匹配元素的文本内容 |
val()可以获取或设置元素的value属性值。
语法:
- $(this).val();//获取元素的value属性值
- $(this).val(value);//设置元素的value属性值
Query中节点操作:
- 查找节点(前面章节已讲)
- 创建节点
- 插入节点
- 删除节点
- 替换节点
- 复制节点
工厂函数$()用于获取或创建节点
- $(selector):通过选择器获取节点
- $(element):把DOM节点转化成jQuery节点
- $(html):使用HTML字符串创建jQuery节点
示例:
var $newNode=$("");
var $newNode1=$("- 你喜欢哪些冬季运动项目?
");
var $newNode2=$("- 北京申办冬奥会是再合适不过了!
");
//创建含文本与属性- 元素节点
1.元素内部插入子节点:
| 语法 | 功能 |
|---|---|
| append(content) | ( A ) . a p p e n d ( B ) 表示将 B 追加到 A 中如: (A).append(B)表示将B追加到A中如: (A).append(B)表示将B追加到A中如:(“ul”).append($newNode1); |
| appendTo(content) | ( A ) . a p p e n d T o ( B ) 表示把 A 追加到 B 中如: (A).appendTo(B)表示把A追加到B中如: (A).appendTo(B)表示把A追加到B中如:newNode1.appendTo(“ul”); |
| prepend(content) | ( A ) . p r e p e n d ( B ) 表示将 B 前置插入到 A 中如: (A). prepend (B)表示将B前置插入到A中如: (A).prepend(B)表示将B前置插入到A中如:(“ul”). prepend ($newNode1); |
| prependTo(content) | ( A ) . p r e p e n d T o ( B ) 表示将 A 前置插入到 B 中如: (A). prependTo (B)表示将A前置插入到B中如: (A).prependTo(B)表示将A前置插入到B中如:newNode1. prependTo (“ul”); |
2.元素外部插入同辈节点
| 语法 | 功能 |
|---|---|
| after(content) | ( A ) . a f t e r ( B ) 表示将 B 插入到 A 之后如: (A).after (B)表示将B插入到A之后如: (A).after(B)表示将B插入到A之后如:(“ul”).after($newNode1); |
| insertAfter(content) | ( A ) . i n s e r t A f t e r ( B ) 表示将 A 插入到 B 之后如: (A). insertAfter (B)表示将A插入到B之后如: (A).insertAfter(B)表示将A插入到B之后如:newNode1.insertAfter(“ul”); |
| before(content) | ( A ) . b e f o r e ( B ) 表示将 B 插入至 A 之前如: (A). before (B)表示将B插入至A之前如: (A).before(B)表示将B插入至A之前如:(“ul”).before($newNode1); |
| insertBefore(content) | ( A ) . i n s e r t B e f o r e ( B ) 表示将 A 插入到 B 之前如: (A). insertBefore (B)表示将A插入到B之前如: (A).insertBefore(B)表示将A插入到B之前如:newNode1.insertBefore(“ul”); |
jQuery提供了三种删除节点的方法:
- remove():删除整个节点
- empty():清空节点内容
- detach():删除整个节点,保留元素的绑定事件、附加的数据
最常用的是empty();
- replaceWith()
- replaceAll()
两者的关系类似于append()和appendTo()
示例:
var $newNode1=$("- 你喜欢哪些冬季运动项目?
");
$(".gameList li:eq(2)").replaceWith($newNode1);
//-------------------华丽的分割线
$($newNode1).replaceAll(".gameList li:eq(2)");
clone()用于复制某个节点。
语法:
$(selector).clone([includeEvents]) ;
示例:
$(".gameList li:eq(1)").click(function(){
$(this).clone(true).appendTo(".gameList");
})
$(".gameList li:eq(2)").click(function(){
$(this).clone(false).appendTo(".gameList");
})
attr()用来获取与设置元素属性
语法:
- $(selector).attr([name]) ;//获取属性值
- $(selector).attr({[name1:value1]…[nameN:valueN]}) ;//设置多个属性的值
示例:
$(".contain img").attr({width:"200",height:"80"});
removeAttr()用来删除元素的属性。
语法:
$(selector).removeAttr(name) ;
示例:
$(".contain img").removeAttr("alt");//删除元素的alt属性
children()方法可以用来获取元素的所有子元素。
语法:
$(selector).children([expr]);
示例:
var $section =$("section").children();//获取的子元素,但不包含子元素的子元素
alert($section.length);
jQuery可以获取紧邻其后、紧邻其前和位于该元素前与后的所有同辈元素。
| 语法 | 功能 |
|---|---|
| next([expr]) | 用于获取紧邻匹配元素之后的元素$(“li:eq(1)”).next().addClass(“orange”); |
| prev([expr]) | 用于获取紧邻匹配元素之前的元素$(“li:eq(1)”).prev().addClass(“orange”); |
| slibings([expr]) | 用于获取位于匹配元素前面和后面的所有同辈元素$(“li:eq(1)”).siblings().addClass(“orange”); |
jQuery中可以遍历前辈元素
- parent():获取元素的父级元素
- parents():元素元素的祖先元素
示例:
$("li:eq(1)").parent().addClass("orange");
$("li:eq(1)").parents().addClass("orange");
jQuery中提供了find()、filter()等节点操作方法,请查阅相关手册进行学习
each( ) :规定为每个匹配元素规定运行的函数
语法:
$(selector).each(function(index,element)) ;
示例:
$("img").click(function(){
$("li").each(function(){
var str=$(this).text()+"
";
$("section").append(str);
})
});
end( ):结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态
示例:
$(".contain :header").css({"background":"#2a65ba","color":"#ffffff"});
$(".gameList li").first().css("background","#b8e7f9").end().last().css ("background","#d3f4b5");
$(".gameList li:last").css("border","none");
