1、处理在容器中指定元素事件是否冒泡

冒泡事件,在本例中,祖父孙节点都有单击事件,所谓冒泡,在本例中指单击子节点,会向上触发父节点、祖先节点的单击事件。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>处理在容器中指定元素事件是否冒泡</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
    $(function(){
        $("#content").on("click",function(){
            var txt=$("#msg").html()+"<p>外层div元素被单击</p>";
            $("#msg").html(txt);
        });
        $("body").on("click",function(){
            var txt=$("#msg").html()+"<p>body元素被单击</p>";
            $("#msg").html(txt);
        });
    });
    $(document).ready(function(){
        //允许冒泡
        $("#myBtnEnable").click(function(){
            $("span").on('click',function(){
                var txt=$("#msg").html()+"<p>内层span元素被单击</p>";
                $("#msg").html(txt);
            });
        });
        //禁止冒泡
        $("#myBtnDisable").click(function(){
            $("span").on({
                "mouseover":function(event){
                    var txt=$("#msg").html()+"<p>内层span元素被单击1</p>";
                    $("#msg").html(txt);
                    event.stopPropagation();//停止事件冒泡
                },
                "mousemove":function(event){
                    var txt=$("#msg").html()+"<p>内层span元素被单击2</p>";
                    $("#msg").html(txt);
                    event.stopImmediatePropagation();//停止事件冒泡并阻止该元素其他事件方法的运行
                }
            });
        });
    });
</script>
</head>
<body style="background: #ffd800;">
<!--
    使用方法:event.stopPropagation()
    该方法只阻止事件向祖辈元素的传播,不会阻止该元素自身绑定的其他事件处理方法的函数
    使用方法:event.stopImmediatePropagation()
    该方法不仅阻止事件向祖辈元素的传播,还会阻止该元素自身绑定的其他事件处理方法的函数
-->
<button id="myBtnEnable" style="width: 300px">允许span元素的事件冒泡</button><br/><br/>
<button id="myBtnDisable" style="width: 300px">禁止span元素的事件冒泡</button><br/><br/>
<div id="content" style="background: #00ffff;width: 300px;">
    外层div元素
    <span style="background: #00ff90;">内层span元素</span>
</div>
<div id="msg"></div>
</body>
</html>

默认下,点击span触发事件冒泡

jQuery操作篇(1)

点击禁止span元素的冒泡事件

jQuery操作篇(1)

2、清除元素的HTML标记同时保留元素内容

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>a清除元素的HTML标记同时保留元素内容</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script  type="text/javascript">
    $(document).ready(function(){
        $.fn.stripHtmlTag=function(){
            var regexp=/<("[^"]*"|'[^']*'|[^'">])*>/gi;
            $(this).each(function(){//根据正则表达式清除元素标记
                $(this).html($(this).html().replace(regexp,''));
            });
            return $(this);
        };
        //单击事件
        $("#myBtn").click(function(){
            $("#div").stripHtmlTag();
        });
    });
</script>
</head>

<body>
<!--
    使用方法:each()方法用于为每个匹配元素规定运行的函数,当使用each()方法遍历函数时,如果需要提前终止遍历操作
        ,可以通过放回false值终止。
        replac()方法用于执行正则表达式的替换操作
-->
<div style="margin-bottom: 8px;margin-left: 400px;">
    <button id="myBtn" style="width:400px">清空所有的表格线</button>
</div>
<div style="width:400px;margin-left: 400px;" id="div">
    <table id="mytable" border="1" align="center" style="margin: 0 auto;width: 400px;border-collapse: collapse;text-align: center;font-size:small;">
        <tr style="background-color: lightgray;font-size: medium;">
            <td>葡萄酒名称</td>
            <td>原产地</td>
            <td>葡萄品种</td>
        </tr>
        <tr>
            <td>罗博克葡萄酒</td>
            <td>西班牙</td>
            <td>歌海娜</td>
        </tr>
        <tr>
            <td>克洛文红葡萄酒</td>
            <td>法国</td>
            <td>丹魄</td>
        </tr>
        <tr>
            <td>马迪尔伯爵葡萄酒</td>
            <td>意大利</td>
            <td>朗布罗斯科</td>
        </tr>
    </table>
</div>
</body>
</html>

运行结果:

jQuery操作篇(1)

jQuery操作篇(1)

3、is()判断鼠标是否单击了无序列表ul的节点

//event.target返回哪个DOM触发了事件

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>is()判断鼠标是否单击了无序列表ul的节点</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("ul").mousemove(function(event){
            var targets=$(event.target);
            if(targets.is("li")){
                targets.css("background-color","lightgray");
            }else{
                targets.css("background-color","green");
            }
        });
        $("ul li").mouseout(function(){
            $(this).css("background-color","white");
        });
    });
</script>
</head>
<body>
<!--
    使用方法:is(selector)用于根据选择器、元素或jQuery对象来检测匹配元素集合,如果这些元素中至少有一个
    元素匹配给定的参数,则返回true。
    is()方法不创建新的jQuery对象
    event.target返回哪个DOM触发了事件
-->
<p style="text-align: center;margin-top:15px;">
    <ul>
        <li>js菜鸟教程</li>
        <li>sql菜鸟教程</li>
        <li>HTML菜鸟教程</li>
        <li>Linux菜鸟教程</li>
        <li>bootstrap教程</li>
    </ul>
</p>
</body>
</html>
运行结果:

jQuery操作篇(1)

4、筛选无序列表指定的li元素N种方法

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>筛选无序列表的N中方法</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $("#mybtn_filter_odd").click(function(){
            $("li").filter(":odd").css("background-color","lightgray");
            //$("li:odd").css("background-color","lightgray");
        });
        $("#mybtn_filter_even").click(function(){
            $("li").filter(":even").css("background-color","lightgray");
            //$("li:even").css("background-color",'lightgray');
        });
        $("#mybtn_gt").click(function(){
            $("li:gt(2)").css("background-color","lightgray");
            //$("li").filter(":gt(2)").css("background-color","lightgray");
        });
        $("#mybtn_lt").click(function(){
            $("li:lt(2)").css("background-color","lightgray");
            //$("li").filter(":lt(2)").css("background-color","lightgray");
        });
        $("#mybtn_contains").click(function(){
            $("li:contains('东')").css("background-color",'lightgray');
            //$("li").filter(":contains('东')").css("background-color","lightgray");
        });
        $("#mybtn_nth").click(function(){
            $("li:nth-last-child(3)").css("background-color","lightgray");//倒数第三个li的颜色
        });
        $("#mybtn_prevAll").click(function(){
            $("li").eq(2).prevAll().css("background-color","lightgray");
            //$("li:eq(2)").prevAll().css("background-color","lightgray");
        });
        $("#mybtn_nextAll").click(function(){
            $("li").eq(2).nextAll().css("background-color",'lightgray');
        });
        $("#mybtn_slice").click(function(){
            $("li").slice(2,4).css("background-color","lightgray");//li第三、四行的颜色
            $("li").slice(-2).css("background-color",'gray');//li最后两行的颜色
        });
        $("#mybtn_reset").click(function(){
            $("li").css("background-color","white");
        });
    });
</script>
</head>

<body>
<ul>
    <li>山东省</li>
    <li>广东省</li>
    <li>陕西省</li>
    <li>山西省</li>
    <li>云南省</li>
    <li>辽宁省</li>
    <li>四川省</li>
</ul>
<div>
    <button id="mybtn_filter_odd" style="width:300px;">filter(":odd")奇数行改变背景</button><br/>
    <button id="mybtn_filter_even" style="width:300px;">filter(":even")偶数行改变背景</button><br/>
    <button id="mybtn_gt" style="width: 300px">$("li:gt(n)")某行前改变背景</button><br/>
    <button id="mybtn_lt" style="width:300px">$("li:lt(n))某行之后改变背景</button><br/>
    <button id="mybtn_contains" style="width:300px">$("li:contains(text)")根据内容筛选li</button><br>
    <button id="mybtn_nth" style="width: 300px;">$("ul li:nth-last-child(n))父元素倒数第n个li</button><br/>
    <button id="mybtn_prevAll" style="width:300px">prevAll()某个元素之前</button><br>
    <button id="mybtn_nextAll" style="width: 300px">nextAll()某个元素之后</button><br>
    <button id="mybtn_slice" style="width: 300px">slice(startIndex[,endIndex])指定范围</button><br/>
    <button id="mybtn_reset" style="width:300px">重置背景颜色</button>   
</div>
</body>
</html>

5、将多个事件和方法同时绑定到指定元素

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>将多个事件和方法同时绑定到指定元素</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        //为图片绑定click、mouseover、mouseout三种事件
        /*
        $("#myImage").bind({click:function(){$("#myText").toggle();},
                           mouseover:function(){$("#myText").css("color",'red');},
                           mouseout:function(){$("#myText").css("color","black");}
                           });
        */                   
        $("#myImage").bind({click:imgClick,mouseover:imgMouseover,mouseout:imgMouseout});
    });
    function imgClick(){
        $("#myText").toggle();
    }
    function imgMouseover(){
        $("#myText").css("color",'red');
    }
    function imgMouseout(){
        $("#myText").css("color","black");
    }
</script>
</head>
<body>
<!--
    使用方法:$(selector).bind({event:function,event:function,...})
    参数{event:function,event:function,...}规定事件映射,其中包含一个或多个添加到元素的事件以及事件发生时执行的函数
-->
<div style="text-align:center;">
<img src="../../../../百度背景皮肤/star_img/img1.jpg" id="myImage" height="400"/>
<p style="text-indent: 2em;" id="myText">Angelababy(杨颖),1989年2月28日出生于上海市,华语影视女演员、时尚模特。2003年,Angelababy以模特身份出道,此后,她因担任时尚模特而在香港崭露头角。2007年,她开始将工作重心转向大银幕。2011年,她在爱情片《夏日乐悠悠》中首次担任女主角。2012年,凭借言情片《第一次》获得第13届华语电影传媒大奖最受瞩目女演员奖。2013年,Angelababy与其她三位女艺人被《南都娱乐周刊》选为新“四小花旦”;同年,她还完成了个人的荧屏处女作《大汉情缘之云中歌》....</p>
</div>
</body>
</html>

运行结果 :

单击图片字体消失,鼠标移动到图片字体变为红色,移出字体变为黑色

jQuery操作篇(1)

6、根据输入字符智能匹配符合要求的li元素

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>根据输入字符智能匹配符合要求的li元素</title>
<style type="text/css">
    body{margin: 0px;padding: 0px;}
    ul{position: relative;left:-40px;top:-12px;}
    li{
        width:140px;
        background-color: antiquewhite;
        margin-bottom: 1px;
        list-style-type: none;
        padding-left: 15px;
    }
    .myBox{
        width:200px;
        height: 500px;
        margin-left: auto;
        margin-right: auto;
        background-color: #ffffff;
        padding: 10px;
    }
</style>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript">
    //jquery.fastLiveFilter插件
    jQuery.fn.fastLiveFilter=function(list,options){
        options=options||{};
        list=jQuery(list);
        var input=this;
        var lastFilter='';
        var timeout=options.timeout||0;
        var callback=options.callback||function(){};
        var keyTimeout;
        var lis=list.children();
        var len=lis.length;
        var oldDisplay=len>0?lis[0].style.display:"block";
        callback(len);
        input.change(function(){
            var filter=input.val().toLowerCase();
            var li,innerText;
            var numShown=0;
            for(var i=0;i<len;i++){
                li=lis[i];
                innerText=!options.selector?(li.textContent||li.innerText||""):$(li).find(options.selector).text();
                if(innerText.toLowerCase().indexOf(filter)>=0){
                    if(li.style.display=="none"){
                        li.style.display=oldDisplay;
                    }
                    numShown++;
                }else{
                    if(li.style.display!="none"){
                        li.style.display="none";
                    }
                }
            }
            callback(numShown);
            return false;
        }).keydown(function(){
                clearTimeout(keyTimeout);
                keyTimeout=setTimeout(function(){
                    if(input.val()===lastFilter)
                        return;
                    lastFilter=input.val();
                    input.change();
                },timeout);
            });
            return this;
    }
        $(function(){
            $("#search_input").fastLiveFilter("#search_li");
        });
        $(document).ready(function(){
            $("ul").click(function(event){
                var targets=$(event.target);
                if(targets.is("li")){//判断鼠标是否击中了某个列表项
                    $("#search_input").val(targets.text());
                }
            });
        });
</script>
</head>

<body>
<div class="myBox">
    <input type="text" placeholder="输入文字开始筛选" value="" id="search_input"/>
    <ul id="search_li">
        <li>Tokyo</li>
        <li>Seoul</li>
        <li>Manila</li>
        <li>Jakarta</li>
        <li>Singpore</li>
        <li>Tashkent</li>
        <li>sanna</li>
        <li>Budapest</li>
        <li>San Marino</li>
        <li>sofia</li>
        <li>Abuja</li>
        <li>Apia</li>
        <li>Bern</li>
        <li>Suva</li>
        <li>Santiago</li>
        <li>Brasila</li>
    </ul>
</div>
</body>
</html>


运行结果:

jQuery操作篇(1)

jQuery操作篇(1)

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-04
  • 2022-12-23
  • 2022-01-27
  • 2022-12-23
  • 2021-11-30
  • 2022-03-01
猜你喜欢
  • 2021-06-24
  • 2021-08-27
  • 2022-02-01
  • 2021-12-14
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
相关资源
相似解决方案