JQuery2

1. 元素操作

1.1 text

//text() :获取匹配到的标签中的所有文本文字
// text(val) :更改文本文本
console.log($('div:eq(0)').text());

$('div:eq(0)').text('天气真好')
            
// 注:text中的标签不会有效果,当做普通字符
$('div:eq(0)').text('<h1>清空后</h1>');

1.2 html

//html() :获取匹配到的第一个标签中的所有html内容
// html(val):修改匹配到的所有标签中的所有html内容

$('div').html('大雨')
            
// 注:html中标签会被正确解析
$('div').html('<h1>海棠</h1>')

1.3 val


// val() :获取值
// val(str): 修改value的值
$('#iunput1').val('简单');

1.4 class


// 添加class属性  addClass('str')
            
// 移除class属性 removeClass('str')
            
// 添加或删除class属性 toggleClass('str')
//如果原本有 执行删除,原本没有执行添加

$('#d1').addClass('div1');
$('#d2').removeClass('div3');
$('#d1').toggleClass('div3');
$('#d2').toggleClass('div3');

1.5 css


// css(name):返回匹配到的标签的css样式中name的值
// css(name,value):为匹配到的标签设置一个css样式
// css({name1:value1, name1:value1..}) 多个样式

$('#d1').css('background','beige');
$('#d1').css({'height':'300px', 'width':'100px', 'background':'yellow'})

1.6 attr

attr与addClass的区别:如果class属性存在,attr会替代,而addClass会增加一个class属性 class可以有多个属性值。

//attr(name) : 返回匹配到的标签的属性中name的值
//attr(name, value)  为匹配到的标签添加一个属性
//attr({name1:value1, name1:value1..}) : 为匹配到的标签添加多个属性值

// 获取input的id属性的值
alert($('#i1').attr('id'));
            
// 添加type属性
$('#i1').attr('type', 'password');

2. 父子兄弟元素

2.1 获取父元素

// 1、获取当前元素的直接父元素
var $d5 = $('#p1').parent();

// 2、获取当前元素的所有祖先元素
var $parArr = $('#p1').parents();

//3、获取当前元素的所有祖先元素并且这些祖先元素均为指定内容
var $divArr = $('#p1').parents('div');
var $divArr = $('#p1').parents('#d2');


//4、获取当前元素的所有祖先元素 直到元素前,不包含该元素 
var $untilArr = $('#p1').parentsUntil('#d2');

2.2 获取子元素

// 1、获取当前元素的直接子元素
var $ch1 = $('#d2').children();
console.log($ch1); // d3  d6

// 2、获取当前元素的直接子元素 并且子元素为符合条件的元素
var $ch2 = $('#d2').children('div#d6');
console.log($ch2); // d6

// 3、获取当前元素的所有后代节点 find('*')
var $allCh = $('#d2').find('*');
console.log($allCh); // d6 d3 d4 d5  p1

// 4、获取当前元素的所有符合条件的后代节点 find('条件')
var $allDiv = $('#d2').find('div');
console.log($allDiv); // d6 d3 d4 d5 

2.3 兄弟元素

// 1、获取当前元素的同级元素
var $sibArr = $('h3').siblings();

// 2、获取当前元素的所有同级元素,并且符合条件
var $pArr = $('h3').siblings('p');

// 3 、 next(); 获取当前元素后面的下一个同级元素
var $next = $('h3').next();
console.log($next); // h4
// 4、
var $allNext = $('h3').nextAll();
console.log($allNext); // h4 5 6 p div
// 5、nextUnitl('h6')
var $allNextUn = $('h3').nextUntil('h6');
console.log($allNextUn);  // h4 h5

// prev() :向前查找
// prevAll()

2.4 过滤元素


<div id="d1">
    <p id="p1" class="p1">1</p>
    <p id="p2" class="p2">2</p>
    <p id="p3" class="p1">3</p>
    <p id="p4" class="p2">4</p>
</div>

<script type="text/javascript">
    $(function () {
        // 根据指定条件筛选查找
        // 1、first()
        console.log($('div p').first()); // p1
        // 2、 last()
        console.log($('div p').last());  // p4
        
        // 3、eq(index)
        
        // 4、filter('条件')
        console.log($('div p').filter('.p1')); // p1 p3
        
        // 5、not('条件')
        console.log($('div p').not('.p1'));  // p2 p4 
        
    })
</script>

3. 元素事件

3.1 加载文档


// 文档加载完毕后执行
$(document).ready(function(){
    
})

$(function(){
    
})

3.2 事件处理


<body>
    <div id="d1">点击</div>
    <div id="d2">
        <p>春天来了</p>
        <p>燕子说</p>
    </div>
    <script type="text/javascript">
        // 1、为标签添加事件 不能移除
        $('#d1').click(function(){
            //alert('爱来不来');
            // 给d2添加一个新的标签
            $('#d2').append('<p>新来的</p>');
        })
        
        
        // 动态添加的标签事件不能使用
        /*$('div p').click(function(){
            // this: 当前p对象
             // $(this).text()
            alert(this.innerText);
        })*/
        
        
        // 2、bind 绑定事件
        // bind('事件执行的方式','事件执行的函数')
        // 通过动态添加的标签不能使用
        $('div p').bind('click', function(){
            alert($(this).text());
        })
        
        // 移除事件 unbind
        $('div p').unbind('click');
        
        // 3、delegate 代理事件 (动态添加的可用)
        // 父标签.delegate(真正的执行者, 执行方式, 执行函数)
        //事件代理:利用事件冒泡的方式:将父元素的事件传递给子元素执行
        //使用范围:同一父元素下的相同的子元素都要执行相同的操作
        // 使用条件:必须是冒泡事件
        // click dbclick key mouse 
        // 建议:DOM层不要太深
        $('#d2').delegate('p','click',function(){
            alert($(this).text());
        })
        
        // 移除 undelegate
        $('#d2').undelegate('p', 'click')
        
        // 4、on 添加事件 (动态添加的可用)
        // 父标签.delegate(执行方式, 真正执行者, 执行函数)
        // bind click delegate都是通过on实现的
        //建议:DOM层不要太深
        // 如果需要给动态添加的标签添加事件,推荐使用on的方式
        $('#d2').on('click','p',function(){
            alert($(this).text());
        })
        
        // 移除 off
        $('#d2').off('click', 'p');
    </script>
</body>


3.3 一次性事件


<script type="text/javascript">
    $(function () {
        $('div').one('click', function(){
            alert('我只出现一次')
        })
        
    })
</script>

3.4 鼠标移入或移出


<script type="text/javascript">
    $(function(){
        // hover(inFunc, outFunc)
        //当只有一个参数,鼠标进入或离开都会执行
        
        
        $('div').hover(function(){
            console.log('进入')
        }, function(){
            console.log('离开')
        })
    })    
</script>

3.5 事件对象

<script type="text/javascript">
    // e:事件对象
    // 事件对象包含事件相关的参数
    $('button').click(function(e){
        console.log(e);
        console.log(e.pageX);
        console.log(e.pageY);
    })
</script>

3.6 阻止冒泡及默认事件

<body style='height:1000px'>
    <div id='d1' style="width: 200px; height: 200px; background: pink;"></div>
    <input type="text" id="i1" />
    <a href="http://www.baidu.com" id="a1">非法网站</a>、
    
    <script type="text/javascript">
        $(function(){
            // 点击body范围 body变成绿色
            $('body').click(function(){
                $(this).css('background','green');
            })
        })
        
        // 点击div 只有div 变green
        $('#d1').click(function(e){
            $(this).css('background','green');
            // 阻止事件冒泡
            e.stopPropagation();
            
        })
        
        // 点击input body 不变green
        $('#i1').click(function(e){
            e.stopPropagation();
        })
        
        // 点击 a body 不变green 弹出提示框 点击取消按钮 不访问
        $('#a1').click(function(e){
            e.stopPropagation();
            var result = confirm('是否要访问')
            if(result == false){
                // 取消默认事件
                // e.preventDefault();
                //jQuery 中简写 返回false 相当于执行e.stopPropagation 及e.preventDefault()
                return false;
            }
        })
    </script>
</body>

4. 动态操作元素

4.1 创建标签

<script type="text/javascript">
    $(function(){
        // 1、创建元素
        // $('<元素名称></元素名称>')
        var $p1 = $('<p></p>')
        // 添加到父视图上
        $('body').append($p1);
        
        // 2、创建带有文本文字的标签元素
        var $p2 = $('<p>6666</p>')
        $('body').append($p2);
        
        // 3、创建带有属性的标签元素
        var $p3 = $("<p style='color:blue'>7777</p>")
        $('body').append($p3);
    })
</script>

4.2 添加元素节点1

<script type="text/javascript">
    $(function () {
        
        //在元素内部添加新的元素
        // 1、append
        // 语法结构:父元素.append(新标签)
        // 将新元素添加到父元素所有子元素的后面
        var $p1 = $('<p>周三</p>')
        $('#d1').append($p1);
        
        // 2、appendTo
        // 语法结构:父元素.appendTo(新标签)
        // 将新元素添加到父元素所有子元素的后面
        var $p2 = $('<p>周四</p>')
        $p2.appendTo('#d1');
        
        
        // 3、prepend
        // 语法结构:父元素.prepend(新标签)
        // 将新元素添加到父元素所有子元素的前面
        var $p3 = $('<p>周二</p>')
        $('#d1').prepend($p3);
        
        // 4、prependTo
        // 语法结构:父元素.prependTo(新标签)
        // 将新元素添加到父元素所有子元素的后面
        var $p4 = $('<p>周一</p>')
        $p4.prependTo('#d1');
        
    
    })
</script>

4.3 添加元素方式2

<script type="text/javascript">
    // 1、after
    // 旧元素.after(新元素)
    $p1 = $('<p>777</p>')
    // console.log($('div'))
    // console.log($('div:eq(0)'))
    $('div').after($p1);
    
    // 2、insertAfter
    // 新元素.insertAfter(旧元素)
    $p2 = $('<p>888</p>')
    $p2.insertAfter($('div'));
    
    
    
    //3 before
    // 旧元素.before(新元素)
    $p3 = $('<p>666</p>')
    $('div').before($p3);
    
    // 4、insertBefore
    // 新元素.insertBefore(旧元素)
    $p4 = $('<p>555</p>')
    $p4.insertBefore($('div'));
</script>

4.4 删除元素

<script type="text/javascript">
    $(function(){
        // JQuery 删除元素的操作
        // 1、remove()
        // 2、detach()
        // 3、empty()
        $('div p').click(function(){
            alert($(this).text());
        })
    })
    
    // 1、remove(): 删除元素
    // 删除元素,但是会把删除的元素保持下来,但不会把元素绑定的事件保存下来
    /*var $pp = $('div:eq(0) p').remove();
    // 添加到div上
    $('div:eq(0)').append($pp);*/
    
    
    
    
    // 2、detach(): 删除元素
    // 删除元素,但是会把删除的元素保持下来,会把元素绑定的事件保存下来
    var $p3 = $('div p').detach();
    // 添加到div上
    $('div:eq(0)').append($p3);
    
    
    // 3、empty(): 清空子元素
    // 只清空子元素,自己本身不会删除
    $('div:eq(0)').empty();
    
    
</script>

4.5 复制元素

<script type="text/javascript">
    $(function(){
        // 复制元素
        // clone():复制元素的操作
        // clone(boolean):false:只复制本身,不复制事件,默认false
        // true :复制对象本身及事件
        $('p').click(function(){
            // 复制本身,并将复制的对象添加到父元素、
            var $p1 = $(this).clone(true);
            
            $('div').append($p1);
            
        })
    })
</script>

4.6 替换元素

<script type="text/javascript">
    $(function(){
        // 替换元素
        // replaceWith(新的元素)
        
        // $('#d1').replaceWith('<h1>早</h1>')
        //$('div').replaceWith('<h2>原生</h2>')
        
        
        // 新元素.replaceAll(旧元素)
        $('<h4>周树人</h4>').replaceAll($('#d2'))
    })
</script>

4.7 动态添加父子节点

<script type="text/javascript">
    // 添加父节点 wrap(父节点)
    $('button:eq(0)').click(function(){
        // 给a标签添加一个div父标签
        $('a').wrap('<div></div>')
    })
    // 删除父节点
    $('button:eq(1)').click(function(){
        $('a').unwrap()
    })
    
    // 整体添加父节点
    $('button:eq(2)').click(function(){
        $('a').wrapAll("<div></div>")
    })
    
    // 添加子节点
    $('button:eq(3)').click(function(){
        $('a').wrapInner('<b></b>')
    })
</script>

JQuery3

    原文作者:rottengeek
    原文地址: https://segmentfault.com/a/1190000014938919
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞