javascript - jquery选择器问题
ringa_lee
ringa_lee 2017-04-10 17:09:45
[JavaScript讨论组]
    <ul class="ul1">
        <li><a href="#">00000001</a></li>
        <li><a href="#">00000002</a></li>
    </ul>
    
    $(".ul1 li").mouseover(function() {
        $("a",this).css('background', 'blue');//这里$("a",this)求解释
    });

$("a",this).css('background', 'blue');
一般我是用$(this).find("a")找出li标签中的a元素,$("a",this)是什么意思,求解释,也相当于在li标签中找出a元素吗?谢谢~

ringa_lee
ringa_lee

ringa_lee

全部回复(5)
PHPz

好吧,第一次遇到两个参数的选择器。哈哈,现在理解了。附上jquery源码

// HANDLE: $(expr, context)

        // (which is just equivalent to: $(context).find(expr)
        } else {
            return this.constructor( context ).find( selector );
        }
伊谢尔伦

见如下代码注释

 $(".ul1 li").mouseover(function() {
        $("a",this).css('background', 'blue');//这里$("a",this)求解释
        //这里是在你鼠标上移到某个li时触发的,此时$("a",this)指的便是你现在鼠标指的li下的a标签
    });
PHP中文网

这里的this指的是当前鼠标移上去的标签,你前面写了$(".ul1 li").mouseover
所以这里的this指的是当前鼠标指向的li,而里面的a,是在当前指向的li下寻找a标签。

迷茫

$(".ul1 li").find('a')

PHPz

$("a",this)这里的第二个参数"this"限定查找a的范围,$("span", this) 等价于 $(this).find("a")。

jQuery(selector, [context])一种用法解释:一般情况对jquery的选择器的用法,都是做为第一个参数的用法。其实jquery()函数的这种用法还可以传递第二个参数。传递这个参数的目的是将前面选择器限定在context这个环境中。在默认情况下,即不传第二个参数,选择器从文档根部对 DOM 进行搜索($()将在当前的HTML document中查找DOM元素);如果指定了第二个参数,如一个DOM元素集或jquery对象,那就会在这个context中查找。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号