JQuery DOM 操作
这我们创建一个简单的html页面
<body>
<p title="ppp">ppp</p>
<ul>
<li>篮球</li>
<li>足球</li>
</ul>
</body>
01 查找节点元素
var $li=$('ul li:eq(1)'); //获取ul里面的第二个li节点【注意:eq(num),num是从0开始的】
alert($li.text()) //获取第二个li节点中的文本内容,同时打印出来
02 查找节点属性
var $p=$('p:eq(0)'); //获取第一个p节点
alert($p.attr("title"))// 获取节点属性title,并打印出来
03 创建节点元素
var $li01=$("<li title='台球'>台球</li>"); //创建文本节点和属性
04 插入节点
方法 | 描述 | 示例 |
---|---|---|
append( ) | 在每个匹配的元素内部追加内容 | 如段落p中添加标记:$(“p”).append(“hello”); |
appendTo( ) | 将所有的匹配元素追加到指定元素中 | $(“hello”).appendTo(“p”); |
prepend( ) | 向每个匹配的元素内部前置内容 | $(“p”).prepend(“hello”); |
prependTo ( ) | 将所有匹配的元素前置到指定的元素中 | $(“hello”).prependTo (“p”); |
after( ) | 在每个匹配的元素之后插入内容 | $(“p”).after(“hello”); |
insertAfter( ) | 将所有匹配的元素插入到指定元素后面 | $(“hello”).insertAfter(“p”); |
before( ) | 在每个匹配的元素之前插入内容 | $(“p”).before(“hello”); |
insertBefore( ) | 将所有匹配的元素插入到指定的元素的前面 | $(“hello”).insertBefore(“p”); |
实例几方法
$("ul").append($li01);
$li01.appendTo("ul")
05 删除节点
1. remove()方法
作用:从DOM中删除所有匹配的元素,传入的参数用于根据JQuery表达式来筛选元素。
eg:
$("ul li:eq(1)").remove();
当某个节点用remove()方法删除后,该节点所包含的所有后代节点将同时被删除。这个方法的返回值是一个指向已被删除的节点的引用,因此可以在以后再使用这些元素。
eg:
var $li=$("ul li:eq(1)").remove();
$li.apppendTo("ul");
这里删除只是从网页中删除。在JQuery对象中,这个元素还是存在的,我们可以重新获取它。
2. empty()方法
严格来说 empty()方法并不是删除节点,而是清空点节点,它能清空元素中的所有后代节点
eg:
//获取第二个li元素节点,清空此元素里的内容,注意是元素里
$("ul li:eq(1)").empty();
05 复制节点
$("ul li:eq(0)").clone().appendTo("ul");
在clone()方法中传递一个参数true,它的含义是复制元素的同时复制元素中所绑定的事件。因此该元素的副本也同样具有复制功能
$("ul li:eq(0)").clone(true).appendTo("ul");
06 替换节点
replaceWith()和replaceAll()
replaceWith()方法的作用是将所有匹配的元素都替换成指定的HTML或者DOM元素
eg:
<body>
<p title="选择你最喜欢的运动">你最喜欢的运动项目是?</p>
</body>
<script>
$(function(){
//replaceWith()方法
$("P").replaceWith("<strong>你最喜BU欢的运动项目是?</strong>")
//replaceAll()方法
$("<strong>你最喜BU欢的运动项目是?</strong>").replaceAll("p");
})
</script>
07 包裹节点
<body>
<strong>你最喜BU欢的运动项目是?</strong>
<strong>你最喜BU欢的运动项目是?</strong>
</body>
1. wrap()方法
$("strong").wrap("<b></b>"); //用<b>标签把<strong>元素包裹起来
2. wrapAll()方法
该方法会将所有的匹配的元素用一个元素来包裹。它不同于wrap()方法,wrap()方法 是将所有的元素进行单独的包裹。
使用wrap()方法[ $("strong").wrap("<b></b>"); ]结果为:
<body>
<b> <strong>你最喜BU欢的运动项目是?</strong> </b>
<b> <strong>你最喜BU欢的运动项目是?</strong> </b>
</body>
使用wrapAll()方法[ $("strong").wrapAll("<b></b>"); ]结果为:
<body>
<b>
<strong>你最喜BU欢的运动项目是?</strong>
<strong>你最喜BU欢的运动项目是?</strong>
</b>
</body>
3. wrapInner()方法
该方法将每一个匹配的元素的子内容(包括文本节点)用其他结构化的标记包裹起来。
eg:
$("strong").wrapInner("<b></b>");
结果为:
<strong><b>你最喜BU欢的运动项目是?</b></strong>
08 属性操作
===>1. 获得属性和设置属性
如果要获得<p>元素的属性title,那么只需要给attr()方法传递一个参数,即属性名称
eg:
var $para=$("p");
var p_txt=$para.attr("title");
如果要设置<p>元素的属性title的值,也可以使用用一个方法,不同的是,需要传递两个参数及属性名称和对应的值
eg:
$("p").attr("title","标题名");
如果需要一次性为同一个元素设置多个属性。则:
eg:
$("p").attr({"title":"标题名","name":"张三"});
===> 注意:<===
JQuery中的很多方法都是同一个函数实现获得(getter)和设置(setter)的,例如上面的attr()方法,既能设置元素属性的值,也能获得元素属性的值。类似的还有html()、text()、height()、width()、val()和css()等方法。
===>2. 删除属性
removeAttr()方法:
eg:
$("p").removeAttr("title") //删除<p>元素的属性'title'
09 样式操作
===>1.获得样式和设置样式
eg:
HTML代码如下:
<p class="myClass" title="选择喜欢的运动">你最喜欢的运动是?</p>
在上面的代码中,class也是<P>元素的属性,因此获得class和设置class都可以使用attr()方法来完成。
eg:
var p_class=$("p").attr("class"); //获得<P>元素的class
$("p").attr("class","high"); //设置<P>元素的class为"high
So:在大多数时候,它是将原来的class替换成新的class,而不是在原来的基础上追加新的class
===>2.追加样式
addClass()方法:
eg:
$("p").addClass("追加的class类")
实例:
<style>
.newClss{
color:red;
fon
}
</style>