啊啊啊啊123
2016-09-02 10:22
$("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'); })
parents()是无参数的,但是允许传一个选择器的表达式。itemB是参数,'.item-b'是一个字符串,是一个表达式,是这个方法封装者设置的,被允许的参数。这里说的无参数,应该是指不能传入变量,且只能传入“选择器表达式”,其他的都不行。
代码:$('li.item-1') .parents('.item-b').css('border', '1px solid blue'); 意思是:从$('li.item-1')的parents集合中取出class名为item-b的元素(从当前集合筛选)
再看看选择性接受同一类型选择器表达式的解释:
parents()方法选择性地接受同一型选择器表达式
同样的也是因为jQuery是合集对象,可能需要对这个合集对象进行一定的筛选,找出目标元素,所以允许传一个选择器的表达式;
parents 是全遍历之后挑选相符合的
closest 是向上层遍历之后 遇到符合的就停止遍历
jQuery基础(二)—DOM篇
114012 学习 · 590 问题
相似问题