jQuery 拥有可操作 HTML 元素和属性的强大方法。
jQuery 中非常重要的部分,就是操作 DOM 的能力。
jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
DOM = Document Object Model(文档对象模型)
DOM 定义访问 HTML 和 XML 文档的标准:"W3C 文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。"
三个简单实用的用于 DOM 操作的 jQuery 方法:text() - 设置或返回所选元素的文本内容、html() - 设置或返回所选元素的内容(包括 HTML 标记)、val() - 设置或返回表单字段的值。
下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:
$("#btn1").click(function(){
alert("值为: " + $("#test").val());
});
attr() 方法用于获取属性值。下面的例子演示如何获得链接中 href 属性的值:
$("button").click(function(){
alert($("#runoob").attr("href"));
});
下面的例子演示如何通过 text()、html() 以及 val() 方法来设置内容:
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("RUNOOB");
});
text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回希望使用的字符串。
下面的例子演示带有回调函数的 text() 和 html():
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";
});
});
attr() 方法也用于设置/改变属性值。下面的例子演示如何改变(设置)链接中 href 属性的值:
$("button").click(function(){
$("#runoob").attr({
"href" : "http://www.runoob.com/jquery",
"title" : "jQuery 教程"
});
});
attr(),也提供回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回希望使用的字符串。
下面的例子演示带有回调函数的 attr() 方法:
$("button").click(function(){
$("#runoob").attr("href", function(i,origValue){
return origValue + "/jquery";
});
});
jQuery - 添加元素
用于添加新内容的四个 jQuery 方法:append() - 在被选元素的结尾插入内容、prepend() - 在被选元素的开头插入内容、after() - 在被选元素之后插入内容、before() - 在被选元素之前插入内容。
append() 方法在被选元素的结尾插入内容。
$("p").append("追加文本");
prepend() 方法在被选元素的开头插入内容。
$("p").prepend("在开头追加文本");
在上面的例子中,只在被选元素的开头/结尾插入文本/HTML。append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。在下面的例子中,创建若干个新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 append() 方法把这些新元素追加到文本中(对 prepend() 同样有效):
function appendText()
{
var txt1="<p>文本。</p>"; // 使用 HTML 标签创建文本
var txt2=$("<p></p>").text("文本。"); // 使用 jQuery 创建文本
var txt3=document.createElement("p");
txt3.innerHTML="文本。"; // 使用 DOM 创建文本 text with DOM
$("body").append(txt1,txt2,txt3); // 追加新元素
}
after() 方法在被选元素之后插入内容。
before() 方法在被选元素之前插入内容。
$("img").after("在后面添加文本");
$("img").before("在前面添加文本");
after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。
在下面的例子中,创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):
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").befor(txt1,txt2,txt3); // 在图片之前添加文本
}
jQuery - 删除元素
$("#div1").remove();
empty()
方法删除被选元素的子元素。
$("#div1").empty();
$("p").remove(".italic");
jQuery - 获取并设置 CSS 类
.important
{
font-weight:bold;
font-size:xx-large;
}
.blue
{
color:blue;
}
addClass()
- 向被选元素添加一个或多个类。下面的例子展示如何向不同的元素添加 class 属性。当然,在添加类时,您也可以选取多个元素:
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important");
});
也可以在
addClass() 方法中规定多个类:
$("button").click(function(){
$("#div1").addClass("important blue");
});
removeClass()
- 从被选元素删除一个或多个类。下面的例子演示如何在不同的元素中删除指定的 class 属性:
$("button").click(function(){
$("h1,h2,p").removeClass("blue");
});
也可以在
removeClass() 方法中规定多个类
:
$("button").click(function(){
$("#div1").removeClass("important blue");
});
toggleClass()
- 对被选元素进行添加/删除类的切换操作。下面的例子将展示如何使用 jQuery toggleClass() 方法。该方法对被选元素进行添加/删除类的切换操作:
$("button").click(function(){
$("h1,h2,p").toggleClass("blue");
});
jQuery css() 方法
css() 方法设置或返回被选元素的一个或多个样式属性。如需返回指定的 CSS 属性的值,请使用如下语法:
css("propertyname");
下面的例子将返回首个匹配元素的
background-color 值:
$("p").css("background-color");
如需设置指定的
CSS 属性,请使用如下语法:
css("propertyname","value");
下面的例子将为所有匹配元素设置
background-color 值:
$("p").css("background-color","yellow");
如需设置多个
CSS 属性,请使用如下语法:
css({"propertyname":"value","propertyname":"value", });
下面的例子将为所有匹配元素设置
background-color 和 font-size:
$("p").css({"background-color":"yellow","font-size":"200%"});
jQuery 尺寸
通过 jQuery,很容易处理元素和浏览器窗口的尺寸。
jQuery 提供多个处理尺寸的重要方法:
width()、
height()、
innerWidth()、
innerHeight()、
outerWidth()、
outerHeight()。
$("button").click(function(){
var txt="";
txt+="div 的宽度是: " + $("#div1").width() + "</br>";
txt+="div 的高度是: " + $("#div1").height();
$("#div1").html(txt);
});
$("button").click(function(){
var txt="";
txt+="div 宽度,包含内边距: " + $("#div1").innerWidth() + "</br>";
txt+="div 高度,包含内边距: " + $("#div1").innerHeight();
$("#div1").html(txt);
});
$("button").click(function(){
var txt="";
txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth() + "</br>";
txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
$("#div1").html(txt);
});