锋利的jQuery学习笔记之DOM操作

        1.查找节点

        查找元素节点:

        可以使用jQuery选择器来完成

        查找属性节点:

        利用jQuery选择器查到需要的元素之后,就可以使用attr()方法来获取各种属性的值

        attr()方法的参数为一个时:参数为属性,方法会返回属性的值

        2.创建节点

        创建元素节点:步骤一:创建新元素:var $li = $("<li></li>");

        步骤二:将新创建的元素插入文档中,可以使用append()方法等方法:$("ul").append($li);

        创建文本节点:在创建元素节点时将文本写出来:var $p = $("<p>p元素的文本</p>");

        创建属性节点:在创建元素节点时将属性写出来:var $p = $("<p class="lala"></p>");

        3.插入节点的方法

        append();//向每个匹配的元素内部追加内容,$("p").append("<span>span的文本</span>");

134320_dMBx_3219122.png

        appendTo();//与append()方法相反;$("<span>span的文本</span>").appendTo("p");

134339_cYts_3219122.png

        prepend();//向每个匹配的元素内部前置内容;$("p").prepend("<span>span的文本</span>");

134355_m1yB_3219122.png

        prependTo();//与prepend方法相反;$("<span>span的文本</span>").prependTo("p");

134409_vlSw_3219122.png

        after();//在匹配的元素后之后插入内容,成为同辈元素$("p").after("<p></p>")

134422_Psgm_3219122.png

        insertAfter();//与after()方法相反;$("<p></p>").insertAfter("p");

134432_IkEQ_3219122.png

        before();//在每个匹配的元素之前插入内容,$("p").before("<span></span>");

134443_87kr_3219122.png

insertBefore();//与before方法相反。

  134454_wTsd_3219122.png

        4.删除节点

        三种删除节点的方法:remove();detach();empty();

        remove()语法1:var $li = $("ul li:eq(1)").remove();返回被删除元素的引用

        remove()语法2:$("ul li").remove(li[title!=lala]);将ul元素中title不等于lala的li元素删除

        detach()方法与remove()语法1用法相同;但在通过返回值的引用重新使用这个元素时,使用remove()方法删除的元素绑定的事件等会消失,而detach()方法绑定的事件等则不会消失。

        empty()语法:empty方法并不是删除节点,而是清空节点,他能清空元素中的所有后代节点,但当前节点任然存在。

        5.复制节点

        复制节点使用clone()方法,例:

       211442_LYCU_3219122.png

如果需要复制节点的同时,将节点所绑定的事件同时复制,则需要这样写:clone(true)

        6.替换节点

        替换节点可以使用replaceWith()方法replaceAll()方法

        replaceWith()语法:$(匹配的元素).replaceWith(替换后的html元素)

        212122_iytI_3219122.png

        replaceAll()语法:与replaceWith()方法相反。

        注意:如果在替换之前已经为元素绑定事件,替换后绑定的事件会和替换的元素一起消失。

        7.包裹节点

        如果要将某个节点用其他标记包裹起来,jQuery提供了相应的方法:wrap();

        该方法对于需要在文档中插入额外的结构化标记非常有用,而且他不会破坏原始文档的语义。

        语法:$("strong").wrap("<p></p>");//用<p>标签把<strong>元素包裹起来。

        wrapAll()方法:该方法会将所有匹配的元素用一个标签来包裹,不同于wrap()方法,wrap()方法是将所有的元素单独包裹。

        注意:如果被包裹的多个元素之间有其他元素,其他元素会被放到包裹元素之后。

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

        213909_bAUp_3219122.png  

        8.属性操作

        在jQuery中用attr()方法来获取和设置元素属性,removeAttr()方法来删除元素属性

        1.获取和设置属性

        attr()方法:只传递一个参数,参数为属性名称,返回值为属性的值。(获取元素属性)

        214501_bKIL_3219122.png

        传递两个参数,参数1为属性的名称,参数2为属性的值,可以设置元素的属性值

        214518_zPAU_3219122.png

        一次性为一个元素设置多个属性值:

        214546_MC51_3219122.png

        2.删除属性

        removerAttr()方法:214741_SaLt_3219122.png

        9.css样式操作

        1.获取和设置样式

        因为class同样为元素的属性,所以他的获取和设置使用attr()方法

        2.追加样式

        addClass()方法:$("p").addClass("another");//给元素追加another类,此时原有的样式与追加的样式合并,同一样式属性,后者覆盖前者。

        3.删除样式

        removeClass()方法:

        不带参数时,移除所有匹配元素的class;

        参数为要移除的class的值;

        removeClass("class1 class2");//同时移除多个class

        4.切换样式

        toggleClass()方法:如果类名存在则移除他,如果不存在则追加他

        语法:$("p").toggleClass("class1");//重复切换类名class1

        5.判断是否含有某个样式

        hasClass()方法:判断元素中是否含有某个class,如果有返回true,如果没有则返回false

        语法:$("p").hasClass("another");

        这个方法在jQuery内部实际上是调用了is()方法来完成这个功能的,

        该方法等价于:$("p").is(".another");

        10.设置和获取html,文本和值

        html()方法:类似于javaScript的innerHTML属性可以用来读取或设置某个元素的HTML内容

        不加参数:获取HTML内容;            加参数:参数为修改的HTML内容

        text()方法:类似于javaScript中的innerText属性可以用来读取或设置某个元素中的文本内容

        不加参数:获取文本内容;            加参数:参数为修改的文本内容

        val()方法:类似于javaScript中的value属性,可以用来设置和获取元素的值,如果元素为多选,则返回一个包含所有选择的值的数组

         不加参数:获取value的值;            加参数:参数为修改的value的值

        11.遍历节点

        children()方法:取得匹配元素的子元素集合,该方法只考虑子元素,不考虑其他后代元素

        语法:$("p").children();

        next()方法:用于获取匹配元素后面紧邻的同辈元素

        prev()方法:用于获取匹配元素前面紧邻的同辈元素

        sublings()方法:用于获取匹配元素前后的所有同辈元素

        closest()方法:用于取得最近的匹配元素。首先检查当前元素,如果匹配直接返回元素本身,如果不匹配则向上查找父元素,逐级向上直到查找到匹配选择器的元素,如果什么都没查找到则返回一个空的jQuery对象。

        12.CSS-DOM操作

        CSS-DOM技术简单来说就是读取和设置style对象的各种属性

        获取:$("p"),css("class");//获取p标签的class属性

        设置:$("p").css("class","class1");//设置p标签的class属性的值为class1

        同时设置多个:$("p").css("id":"id1","class":"class1");//同时设置多个样式属性

        透明度设置:$("p").css("opacity","0.5");

        在CSS-DOM中,关于元素定位有以下几个经常用的方法:

        offset()方法:获取元素在当前视窗的相对偏移;其中返回的对象包含两个属性:left,top;该方法只对可见元素有效。

        语法:var offset = $("p").offset();var left = offset.left;//获取左偏移,右偏移同样。

        position()方法:获取元素相对于最近的一个position样式属性设置为relative或absolute的祖父节点的相对偏移。返回的对象也包含两个属性:left,top.

        语法同offset()方法相似

        scrollTop()和scrollLeft()方法:

        这两个方法是分别获取元素的滚动条距顶端和距左侧的距离,添加参数则可以设置这两个距离。

        

        

转载于:https://my.oschina.net/u/3219122/blog/856784

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值