jQuery基础学习(三)—jQuery中的DOM操作

一、查找节点

     查找属性节点: 通过jQuery的选择器来完成。

     操作属性节点: 调用jQuery对象的attr()来获取它的属性值。

     操作文本节点: 通过text()方法。

    		//1.操作文本节点:通过jQuery的text()方法
    		alert($("#bj").text());
    		$("#bj").text("南京");
    		alert($("#bj").text());
    		
    		//2.操作属性节点
    		//注:直接操作value属性值可以使用val()方法
    		alert($(":text[name='username']").attr("value"));
    		$(":text[name='username']").attr("value","呵呵");

二、插入节点

1.创建节点

     $(HTML);

    		var $li_1 = $("<li id='bj'>北京</li>");
    		var $li_2 = $("<li id='sh'>上海</li>");

2.插入节点

image

二、删除节点

1.remove()

     从DOM中删除所有匹配的元素,传入的参数用于根据jQuery表达式来筛选元素。当某个节点用remove()方法删除后,该节点所包含的所有后代节点将被同时删除。这个方法的返回值是一个指向被删除的节点的引用。

<ul id="fruit">
            <li id="apple">苹果</li>
            <li>香蕉</li>
            <li>草莓</li>
            <li>桃子</li>
        </ul>
$("ul li[id='apple']").remove();

删除前:                 删除后:

image                 image

2.empty()

     清空节点,清空元素中的所有后代节点(不包含属性节点)。

$("ul li[id='apple']").empty();

删除前:                        删除后:

image                   imageimage

三、克隆节点

     clone(): 克隆匹配的DOM元素,返回值为克隆后的副本,但此时复制的新节点不具有任何事件和行为。

     clone(true): 复制元素的同时也复制元素的事件。

<p>你喜欢的水果?</p>
        <ul id="fruit">
            <li id="apple">苹果</li>
            <li id="banana">香蕉</li>
            <li>草莓</li>
            <li>桃子</li>
        </ul>
			$("li").click(function(){
				
				alert($(this).text());
				
			});
    		
    		$("#apple").clone().insertAfter("#banana");//此时新添的节点有相同的id但是没有点击事件
    		$("#apple").clone(true).attr("id","apple2").insertAfter("#banana");//修改了id同时添加的事件

四、替换节点

     replaceWith(): 将所有匹配的元素都替换为指定的 HTML 或 DOM 元素。

     replaceAll(): 和上面一样,只是主谓替换了。

			$("<li>荔枝</li>").replaceAll($("#fruit li:last"));
			$("#fruit li:eq(1)").replaceWith($("<li>橘子</li>"));

替换前:              替换后:

image               image

下列代码实现节点的互换

    		//节点的替换
    		var $apple2 = $("#apple").clone(true);
    		var $peach2 = $("#peach").clone(true);
    		
    		$("#apple").replaceWith($peach2);
    		$("#peach").replaceWith($apple2);

注意: 若在替换之前, 已经在元素上绑定了事件, 替换后原先绑定的事件会与原先的元素一起消失。

五、包裹节点

     wrap(): 将指定节点用其他标记包裹起来。 该方法对于需要在文档中插入额外的结构化标记非常有用, 而且不会破坏原始文档的语义。

     wrapAll(): 将所有匹配的元素用一个元素来包裹。而 wrap() 方法是将所有的元素进行单独包裹。

     wrapInner(): 将每一个匹配的元素的子内容(包括文本节点)用其他结构化标记包裹起来。

    		$("#fruit li").wrap("<font color='red'></font>");
    		$("#fruit li").wrapAll("<font color='red'></font>");
    		$("#fruit li").wrapInner("<font color='red'></font>");

上面三种对应的HTML结构:

image       image     image

六、属性操作

1.获取属性和设置属性

     attr()

			//1.获取属性
    		var id_text = $("#apple").attr("id");
    		alert(id_text);//apple
    		
    		//2.设置属性
    		$("#apple").attr("id","apple2");
    		alert($("#apple2").attr("id"));//apple2
    		
    		//3.设置多个属性
    		$("p").attr({"title" : "hehe","name" : "test"});

     jQuery 中有很多方法都是一个函数实现获取(getter)和设置(setter). 如: attr(), html(), text(), val(), height(), width(), css() 等。

2.删除属性

    removeAttr();

     如果要删除<p>元素的title属性,可以使用下面的。

			$("p").removeAttr("title");   

七、设置和获取HTML、文本和值

     (1)html()

    该方法类似于JavaScript中的innerHtml属性,可以用来读取和设置某个元素中的HTML内容。

<p><strong>你喜欢的水果?</strong></p>
alert($("p").html());  
结果:

      image

注意: html()方法可以用于XHTML文档,但是不能用于XML文档。

     (2)text()

     该方法类似于JavaScript中的innerText()属性,可以用来读取或者设置某个元素中的文本内容。

<p><strong>你喜欢的水果?</strong></p>
alert($("p").text()); 
结果:

      image

     (3)val

     用来设置和获取元素的值。无论元素是文本框、下拉列表还是单选框,它都可以返回元素的值。如果是多选,就返回数组。

原文地址:https://www.cnblogs.com/yangang2013/p/5452678.html