为了账号安全,请及时绑定邮箱和手机立即绑定

closest()方法

$("button:last").click(function() {
        var itemB = $('.item-b')
        $('li.item-1')
            .closest(itemB)
            .css('border', '1px solid blue');
    })

$('li.item-1') .parents('.item-b').css('border', '1px solid blue')这是正确的为什么parents(itemB)就不行变成全选了,只有closest才有这种传参方式?

$("button:last").click(function() {
        var itemB = $('.item-b')
        $('li.item-1')
            .parents(itemB)
            .css('border', '1px solid blue');
    })


正在回答

3 回答

parents()是无参数的,但是允许传一个选择器的表达式。itemB是参数,'.item-b'是一个字符串,是一个表达式,是这个方法封装者设置的,被允许的参数。这里说的无参数,应该是指不能传入变量,且只能传入“选择器表达式”,其他的都不行。

0 回复 有任何疑惑可以回复我~
代码:$('li.item-1') .parents('.item-b').css('border', '1px solid blue');
意思是:从$('li.item-1')的parents集合中取出class名为item-b的元素(从当前集合筛选)

再看看选择性接受同一类型选择器表达式的解释:

parents()方法选择性地接受同一型选择器表达式

同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式; 



0 回复 有任何疑惑可以回复我~
#1

码农吊车尾

对题目理解错了,答案对不上题,没法删
2016-10-11 回复 有任何疑惑可以回复我~
#2

啊啊啊啊123 提问者 回复 码农吊车尾

O(∩_∩)O哈哈~
2016-10-11 回复 有任何疑惑可以回复我~

parents 是全遍历之后挑选相符合的

closest 是向上层遍历之后 遇到符合的就停止遍历

0 回复 有任何疑惑可以回复我~
#1

啊啊啊啊123 提问者

$('li.item-1') .parents('.item-b').css('border', '1px solid blue');我要这么写也是对的你知道么
2016-09-02 回复 有任何疑惑可以回复我~
#2

码农吊车尾 回复 啊啊啊啊123 提问者

从$('li.item-1')的parents集合中取出class名为item-b的元素(从当前集合筛选)
2016-10-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery基础(二)—DOM篇
  • 参与学习       114014    人
  • 解答问题       590    个

jQuery第二阶段开启DOM修炼,了解创建、插入、删除与替换

进入课程

closest()方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信