jQuery - 为什么`li a`和`li:有(a)`不同?

Sim*_*ity 1 jquery jquery-selectors

在申请li ali:has(a)不同的结果出现.但是,为什么呢?他们不应该做同样的事吗?

Pek*_*ica 7

他们不应该做同样的事吗?

不是.在第一个例子中,你选择了所有a内部li; 在第二个,你是选择所有的li有一个a.

手册,强调我的:

描述:选择包含至少一个与指定选择器匹配的元素的元素.

表达式$('div:has(p)') 匹配<div> if <p>在其后代中的任何位置,而不仅仅是直接子项.

  • @ Med-SWEng使用第一个选择器,您将获得A元素,使用第二个选择器,您将获得LI元素.那是不同的...... (2认同)