jQuery-DOM操作

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script src="../websites/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" href="style.css">
<title>jQuery DOM节点操作</title>
</head>

<body>
<!--DOM-->
<!--分为DOM Core(核心)、HTML-DOM、CSS-DOM-->
<!--1.DOM Core-->
<p title="你最喜欢的水果是?">你最喜欢的水果是?</p>
<ul>
  <li>苹果</li>
  <li>香蕉</li>
  <li>橘子</li>
</ul>
<!--2.CSS-DOM-->
<div class="demo1">
</div>
<input type="button" value="变色">
</body>
</html>
<script>
$(function(){
    //添加节点
    var $li_1 = $('<li>雪梨</li>');
    var $li_2 = $('<li>葡萄</li>');
    //append向目标元素内部的后面追加元素
    $('ul').append($li_1);
    $('ul').append($li_2);
    $('<li>甜橙</li>').appendTo($('ul'));
    //prepend向目标元素内部的前面追加元素
    $('ul').prepend($('<li>西瓜</li>'));
    $('<li>蜜桃</li>').prependTo($('ul'));
    //after向目标元素外部的后面追加元素;before是向目标元素外部的前面追加元素
    $('ul').after($('<p>我是ul外部后边的段落</p>'));
    $('<p>我是ul外部后边的段落1</p>').insertAfter($('ul'));
    $('ul').before($('<p>我是ul外部前边的段落</p>'));
    $('<p>我是ul外部前边的段落1</p>').insertBefore($('ul'));
    //对节点进行移动
    var $li_3 = $('ul li:eq(2)');
    var $li_1 = $('ul li:eq(0)');
    $li_3.insertBefore(($li_1));
    //删除节点-jQuery提供了3中方法
    //1.remove()方法
    var $li_last = $('ul li:last').remove();
    //alert($li_last);//remove()方法返回的是一个对象,删除后还是可以再使用的。
    $li_last.appendTo($('ul'));//把刚才删除的节点再次添加到ul中
    //另外remove()方法也可以通过传递参数来选择性的删除元素
    //2.detach()方法:与remove()方法差不多,区别是remove()方法删除时,将目标元素的绑定事件和附加的数据都删除,detach()方法则会保留他们。
    $('ul li:first').click(function(){
        alert($(this).text());
        })
    var $li_first = $('ul li:first').detach();//删除元素
    $li_first.prependTo($('ul'));//再次添加到ul中,点击事件依然有效
    var $li_first = $('ul li:first').remove();//删除元素
    $li_first.prependTo($('ul'));//再次添加到ul中,点击事件已经失效
    //3.empty()方法:并不是删除节点,而是清空节点,它能清空元素中的所有后代节点,清空后再次加入到ul中依然无法显示其原先的内容。
    var $li_two = $('ul li:eq(1)').empty();
    $li_two.prependTo($('ul'));
    //复制节点:clone()方法 括号内可以写true或false;true是克隆元素的同时也克隆元素中绑定的事件,默认不写参数为false。
    $('ul li:first').click(function(){
        $(this).clone(true).appendTo($('ul'));
        alert($(this).text());
        })
    //替换节点 
    //1.replaceWith();
    $('body p:eq(1)').replaceWith('<strong>我是替换段落</strong>');
    //2.replaceAll();
    $('<strong>我是替换段落</strong>').replaceAll($('body p:eq(1)'));
    //注意:这两个方法都会将替换前的元素所绑定的事件取消,需要在新元素上重新绑定事件。
    //包裹节点
    //1.wrap()方法:是将匹配元素进行单独包裹(在匹配元素的外层)
    $('ul li').wrap('<b></b>');
    //2.wrapAll()方法:是将匹配元素用一个元素来包裹(在匹配元素的外层)
    $('ul li').wrapAll('<b></b>');
    //3.wrapInner()方法:是将匹配元素进行单独包裹(在匹配元素的内层)
    $('ul li').wrapInner('<b></b>');
    //属性操作:对一个元素进行多属性设置要用对象键值对的方式设置
    $('body p:eq(1)').attr({'title':'我是外部前边的段落','name':'111'});
    //CSS操作
    $('input').click(function(){
        //$('div').toggleClass('demo2');简便变色方法
        //原始变色方法
        if($('div').hasClass('demo1'))
        {
            $('div').removeClass('demo1');
            $('div').addClass('demo2');
        }
        else
        {
            $('div').removeClass('demo2');
            $('div').addClass('demo1');
        }
        })
    //遍历节点
    //1.children()方法:用于取得匹配元素的子元素集合,只考虑子元素,而不考虑其他后代元素
    var $children = $('ul').children();
    //alert($children.length);
    //2.next()方法:取匹配元素同级的下一个元素
    //   nextAll()方法:取匹配元素同级下面的所有元素
    //3.prev()方法:取匹配元素同级的上一个元素
    // prevAll()方法:取匹配元素同级上面的所有元素
    //4.siblings()方法:取匹配元素同级的前后所有元素
    })
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值