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

parents()加了参数和没加是一样的结果?

$('.item-b').parents(":contains('B')").css('border', '2px solid blue')

这句代码会把所有元素框起来,但是如果把:contains('B')换成:last就只会框一个,有没有人知道为什么TT

正在回答

2 回答

前面 $('.item-b').parents 就相当于获得了.item-b 的所有祖辈元素并形成一个集合,后面()中的参数相当于在这个集合里再做操作,你看,要是输入:contains('B')的话,因为这个集合里是没有它的,所以和(空)是一个效果【因为'.item-b'和:contains('B')代表的是一个节点0.0]】,如果换成 :last,就会得到集合里的最后一个值,并在它上面操作【框一个(是html?)】,你还可以试试 lt或者eq().

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

洛洛 提问者

嗷嗷嗷 谢谢 讲的很明白 懂乐~
2017-08-23 回复 有任何疑惑可以回复我~

parents返回的是所有的祖先元素,:contains('B')选择的是包含制定文本的元素,即li,所以,从ul开始,所有的祖先元素都被加了边框,而:last选择了祖先元素里边的最后一个,所以就只有最后一个加了边框

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

辣条宝宝

也是初学,个人见解,若是错了,望请指正
2017-08-20 回复 有任何疑惑可以回复我~
#2

洛洛 提问者 回复 辣条宝宝

我也是初学~ 谢谢讲解^^
2017-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

parents()加了参数和没加是一样的结果?

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