JQuery学习笔记
小杭 笔记整理
jQuery - 获得内容和属性
jQuery 拥有可操作 HTML 元素和属性的强大方法。
jQuery DOM 操作
jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
提示:DOM = Document Object Model(文档对象模型)
DOM 定义访问 HTML 和 XML 文档的标准:
“W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。”
获得内容 - text()、html() 以及 val()
三个简单实用的用于 DOM 操作的 jQuery 方法:
- text() - 设置或返回所选元素的文本内容 {。。。。}
- html() - 设置或返回所选元素的内容(包括 HTML 标记)(所选标签内的所有内容)
- val() - 设置或返回表单字段的值
1
2
3
4
5
6
|
$(
"#btn1"
).click(
function
(){
alert(
"Text: "
+ $(
"#test"
).text());
});
$(
"#btn2"
).click(
function
(){
alert(
"HTML: "
+ $(
"#test"
).html());
});
|
下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:
1
2
3
|
$(
"#btn1"
).click(
function
(){
alert(
"Value: "
+ $(
"#test"
).val());
});
|
jQuery attr() 方法用于获取属性值。
下面的例子演示如何获得链接中 href 属性的值:
1
2
3
|
$(
"button"
).click(
function
(){
alert($(
"#w3s"
).attr(
"href"
));
});
|
jQuery - 设置内容和属性
下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:
1
2
3
4
5
6
7
8
9
|
$(
"#btn1"
).click(
function
(){
$(
"#test1"
).text(
"Hello world!"
);
});
$(
"#btn2"
).click(
function
(){
$(
"#test2"
).html(
"<b>Hello world!</b>"
);
});
$(
"#btn3"
).click(
function
(){
$(
"#test3"
).val(
"Dolly Duck"
);
});
|
上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$(
"#btn1"
).click(
function
(){
$(
"#test1"
).text(
function
(i,origText){
return
"Old text: "
+ origText +
" New text: Hello world!
(index: "
+ i +
")"
;
});
});
$(
"#btn2"
).click(
function
(){
$(
"#test2"
).html(
function
(i,origText){
return
"Old html: "
+ origText +
" New html: Hello <b>world!</b>
(index: "
+ i +
")"
;
});
});
|
下面的例子演示如何改变(设置)链接中 href 属性的值:
1
2
3
4
5
6
|
$(
"button"
).click(
function
(){
$(
"#w3s"
).attr({
"title"
:
"W3School jQuery Tutorial"
});
});
|
下面的例子演示带有回调函数的 attr() 方法:
1
2
3
4
5
|
$(
"button"
).click(
function
(){
$(
"#w3s"
).attr(
"href"
,
function
(i,origValue){
return
origValue +
"/jquery"
;
});
});
|
jQuery - 添加元素
添加新的 HTML 内容
- append() - 在被选元素的结尾插入内容
- prepend() - 在被选元素的开头插入内容 (这两个是在元素内部的开头和结尾<>。。内容 。。</>)
- after() - 在被选元素之后插入内容
- before() - 在被选元素之前插入内容 (这是在元素外。。<></>。。)
通过 append() 和 prepend() 方法添加若干新元素
在上面的例子中,我们只在被选元素的开头/结尾插入文本/HTML。
不过,append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。
在下面的例子中,我们创建若干个新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 append() 方法把这些新元素追加到文本中(对 prepend() 同样有效):
1
2
3
4
5
6
7
8
|
function
appendText()
{
var
txt1=
"<p>Text.</p>"
;
// 以 HTML 创建新元素
var
txt2=$(
"<p></p>"
).text(
"Text."
);
// 以 jQuery 创建新元素
var
txt3=document.createElement(
"p"
);
// 以 DOM 创建新元素
txt3.innerHTML=
"Text."
;
$(
"p"
).append(txt1,txt2,txt3);
// 追加新元素
}
|
jQuery after() 和 before() 方法
jQuery before() 方法在被选元素之前插入内容。
1
2
3
|
$(
"img"
).after(
"Some text after"
);
$(
"img"
).before(
"Some text before"
);
|
after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。
在下面的例子中,我们创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):
1
2
3
4
5
6
7
|
function
afterText()
{
var
txt1=
"<b>I </b>"
;
// 以 HTML 创建新元素var txt2=$("<i></i>").text("love "); // 通过 jQuery 创建新元素var txt3=document.createElement("big"); // 通过 DOM 创建新元素
txt3.innerHTML=
"jQuery!"
;
$(
"img"
).after(txt1,txt2,txt3);
// 在 img 之后插入新元素}
|
jQuery - 删除元素
如需删除元素和内容,一般可使用以下两个 jQuery 方法:
- remove() - 删除被选元素(及其子元素)
- empty() - 从被选元素中删除子元素
过滤被删除的元素
jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
该参数可以是任何 jQuery 选择器的语法。
下面的例子删除 class="italic" 的所有 <p> 元素:
实例
jQuery - 获取并设置 CSS 类
jQuery 操作 CSS
jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:
- addClass() - 向被选元素添加一个或多个类
- removeClass() - 从被选元素删除一个或多个类
- toggleClass() - 对被选元素进行添加/删除类的切换操作
- css() - 设置或返回样式属性
下面的样式表将用于本页的所有例子:
1
2
3
4
5
6
7
8
9
10
|
.important
{
font-weight
:
bold
;
font-size
:
xx-large
;
}
.
blue
{
color
:
blue
;
}
|
下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:
实例
1
2
3
4
|
$(
"button"
).click(
function
(){
$(
"h1,h2,p"
).addClass(
"blue"
);
$(
"div"
).addClass(
"important"
);
});
|
1
2
3
|
$(
"button"
).click(
function
(){
$(
"#div1"
).addClass(
"important blue"
);
});
|
下面的例子演示如何不同的元素中删除指定的 class 属性:
1
2
3
|
$(
"button"
).click(
function
(){
$(
"h1,h2,p"
).removeClass(
"blue"
);
});
|
下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:
1
2
3
|
$(
"button"
).click(
function
(){
$(
"h1,h2,p"
).toggleClass(
"blue"
);
});
|
jQuery - css() 方法
css() 方法设置或返回被选元素的一个或多个样式属性。
如需返回指定的 CSS 属性的值,请使用如下语法:
1
|
css(
"propertyname"
);
|
下面的例子将返回首个匹配元素的 background-color 值:
1
|
$(
"p"
).css(
"background-color"
);
|
设置 CSS 属性
如需设置指定的 CSS 属性,请使用如下语法:
实例
1
|
$(
"p"
).css(
"background-color"
,
"yellow"
);
|
如需设置多个 CSS 属性,请使用如下语法:
1
|
css({
"propertyname"
:
"value"
,
"propertyname"
:
"value"
,...});
|
下面的例子将为所有匹配元素设置 background-color 和 font-size:
1
|
$(
"p"
).css({
"background-color"
:
"yellow"
,
"font-size"
:
"200%"
});
|
jQuery - 尺寸
jQuery 尺寸 方法
jQuery 提供多个处理尺寸的重要方法:
- width()
- height()
- innerWidth()
- innerHeight()
- outerWidth()
- outerHeight()
jQuery width() 和 height() 方法
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
下面的例子返回指定的 <div> 元素的宽度和高度:
1
2
3
4
5
6
|
$(
"button"
).click(
function
(){
var
txt=
""
;
txt+=
"Width: "
+ $(
"#div1"
).width() +
"</br>"
;
txt+=
"Height: "
+ $(
"#div1"
).height();
$(
"#div1"
).html(txt);
});
|
innerHeight() 方法返回元素的高度(包括内边距)。
下面的例子返回指定的 <div> 元素的 inner-width/height:
1
2
3
4
5
6
|
$(
"button"
).click(
function
(){
var
txt=
""
;
txt+=
"Inner width: "
+ $(
"#div1"
).innerWidth() +
"</br>"
;
txt+=
"Inner height: "
+ $(
"#div1"
).innerHeight();
$(
"#div1"
).html(txt);
});
|
jQuery outerWidth() 和 outerHeight() 方法
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
下面的例子返回指定的 <div> 元素的 outer-width/height:
实例
1
2
3
4
5
6
|
$(
"button"
).click(
function
(){
var
txt=
""
;
txt+=
"Outer width: "
+ $(
"#div1"
).outerWidth() +
"</br>"
;
txt+=
"Outer height: "
+ $(
"#div1"
).outerHeight();
$(
"#div1"
).html(txt);
});
|
outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。
实例
1
2
3
4
5
6
|
$(
"button"
).click(
function
(){
var
txt=
""
;
txt+=
"Outer width (+margin): "
+ $(
"#div1"
).outerWidth(
true
) +
"</br>"
;
txt+=
"Outer height (+margin): "
+ $(
"#div1"
).outerHeight(
true
);
$(
"#div1"
).html(txt);
});
|
jQuery - 更多的 width() 和 height()
下面的例子返回文档(HTML 文档)和窗口(浏览器视口)的宽度和高度:
实例
1
2
3
4
5
6
7
8
|
$(
"button"
).click(
function
(){
var
txt=
""
;
txt+=
"Document width/height: "
+ $(document).width();
txt+=
"x"
+ $(document).height() +
"\n"
;
txt+=
"Window width/height: "
+ $(window).width();
txt+=
"x"
+ $(window).height();
alert(txt);
});
|
下面的例子设置指定的 <div> 元素的宽度和高度:
1
2
3
|
$(
"button"
).click(
function
(){
$(
"#div1"
).width(500).height(500);
});
|
jQuery 文档操作方法
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 | 描述 |
---|---|
addClass() | 向匹配的元素添加指定的类名。 |
after() | 在匹配的元素之后插入内容。 |
append() | 向匹配元素集合中的每个元素结尾插入由参数指定的内容。 |
appendTo() | 向目标结尾插入匹配元素集合中的每个元素。 |
attr() | 设置或返回匹配元素的属性和值。 |
before() | 在每个匹配的元素之前插入内容。 |
clone() | 创建匹配元素集合的副本。 |
detach() | 从 DOM 中移除匹配元素集合。 |
empty() | 删除匹配的元素集合中所有的子节点。 |
hasClass() | 检查匹配的元素是否拥有指定的类。 |
html() | 设置或返回匹配的元素集合中的 HTML 内容。 |
insertAfter() | 把匹配的元素插入到另一个指定的元素集合的后面。 |
insertBefore() | 把匹配的元素插入到另一个指定的元素集合的前面。 |
prepend() | 向匹配元素集合中的每个元素开头插入由参数指定的内容。 |
prependTo() | 向目标开头插入匹配元素集合中的每个元素。 |
remove() | 移除所有匹配的元素。 |
removeAttr() | 从所有匹配的元素中移除指定的属性。 |
removeClass() | 从所有匹配的元素中删除全部或者指定的类。 |
replaceAll() | 用匹配的元素替换所有匹配到的元素。 |
replaceWith() | 用新内容替换匹配的元素。 |
text() | 设置或返回匹配元素的内容。 |
toggleClass() | 从匹配的元素中添加或删除一个类。 |
unwrap() | 移除并替换指定元素的父元素。 |
val() | 设置或返回匹配元素的值。 |
wrap() | 把匹配的元素用指定的内容或元素包裹起来。 |
wrapAll() | 把所有匹配的元素用指定的内容或元素包裹起来。 |
wrapinner() | 将每一个匹配的元素的子内容用指定的内容或元素包裹起来。 |
jQuery 属性操作方法
下面列出的这些方法获得或设置元素的 DOM 属性。
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 | 描述 |
---|---|
addClass() | 向匹配的元素添加指定的类名。 |
attr() | 设置或返回匹配元素的属性和值。 |
hasClass() | 检查匹配的元素是否拥有指定的类。 |
html() | 设置或返回匹配的元素集合中的 HTML 内容。 |
removeAttr() | 从所有匹配的元素中移除指定的属性。 |
removeClass() | 从所有匹配的元素中删除全部或者指定的类。 |
toggleClass() | 从匹配的元素中添加或删除一个类。 |
val() | 设置或返回匹配元素的值。 |
jQuery CSS 操作函数
下面列出的这些方法设置或返回元素的 CSS 相关属性。
CSS 属性 | 描述 |
---|---|
css() | 设置或返回匹配元素的样式属性。 |
height() | 设置或返回匹配元素的高度。 |
offset() | 返回第一个匹配元素相对于文档的位置。 |
offsetParent() | 返回最近的定位祖先元素。 |
position() | 返回第一个匹配元素相对于父元素的位置。 |
scrollLeft() | 设置或返回匹配元素相对滚动条左侧的偏移。 |
scrollTop() | 设置或返回匹配元素相对滚动条顶部的偏移。 |
width() | 设置或返回匹配元素的宽度。 |