美文网首页让前端飞
jQuery 选取元素

jQuery 选取元素

作者: 知行社 | 来源:发表于2017-08-25 16:08 被阅读0次

    建议学习时长: 30分钟
    学习方式:深入

    学习目标

    • 知道如何用 jQuery 选取元素。
    • 知道在选取元素的元素上过滤和添加元素。

    详细介绍

    用选择器选取元素

    $(选择器 [, 父元素])
    

    如:

    $('#save-btn');// 所有 id 为 save-btn 的
    $('.btn', $('form'));// form 元素下类名包含 btn 的元素
    $('.box h2.title'); // 所有类名包含 box 的元素下的类名包含 title 的 h2
    

    jQuery 支持的选择器包括:

    注意:
    对于 jQuery 自定义的选择器,为了性能,先用 CSS 定义的选择器选,再从结果集中筛选时用 jQuery 自定义的选择器。如:

    // 不推荐
    $('.form:visible');
    $('.form :selected');
    $('.list:eq(3)');
    // 推荐
    $('.form').filter(':visible');
    $('.form').find(':selected');
    $('.list').eq(3);
    

    一些有用的选择器

    表单类

    是否可见

    内容过滤

    其他

    选择器中包含元字符的处理

    选择器的元字符有:!"#$%&'()*+,./:;<=>?@[\]^{|}~

    选择器中如果要使用选择器的元字符,必须用 \ 来转义。如:选择 id 为 foo.bar 的元素,要使用 $("#foo\\.bar")。如果使用 $("#foo.bar"),则选择的是 id 为 foo 并且有 bar 的类名的元素。

    从层级中选取元素

    从父元素和祖系元素中找

    closest parents parent
    从当前元素开始 从父级开始 从父级开始
    向上查找直到找到匹配的 向上查找直到文档的根节点 向上查找一层
    为执行操作的每个jQuery对象返回最多一个元素 为执行操作的每个jQuery对象返回0或多一个元素 为执行操作的每个jQuery对象返回最多一个元素

    从子元素中下找

    $('#frameDemo').contents().find('a');
    // 等效与
    $('#frameDemo')[0].contentWindow.$('a');
    

    从兄弟元素中找

    过滤掉不满足条件的元素

    $(".btn")
      .filter(function(index) {
        return index > 2 && $(this).is(':visible');
    });
    

    选中集合中添加元素

    • add

    自定义选择器

    例如

    $.extend($.expr[':'], {
        notEmpty: function(el,index, meta, stack) {
        // element- DOM元素
        // index - 堆栈中当前遍历的索引值
        // meta - 关于你的选择器的数据元
        // stack - 用于遍历所有元素的堆栈
            return $(el).val() !== "";
        }
    });
    $(':text:notEmpty') //所有值不为空的输入框
    

    相关文章

      网友评论

        本文标题:jQuery 选取元素

        本文链接:https://www.haomeiwen.com/subject/mvoudxtx.html