如果正向解析,為什么要先找到最上層的div,直接找到所有的div不行嗎
4.如果正向解析,例如「div?div?p?em」,我們首先就要檢查當(dāng)前元素到?html?的整條路徑, 找到最上層的?div,再往下找,如果遇到不匹配就必須回到最上層那個?div, 往下再去匹配選擇器中的第一個?div,回溯若干次才能確定匹配與否,效率很低。 5.逆向匹配則不同,如果當(dāng)前的?DOM?元素是?div,而不是?selector?最后的?em, 那只要一步就能排除。只有在匹配時,才會不斷向上找父節(jié)點(diǎn)進(jìn)行驗(yàn)證。
正向解析,也可以先找到所有的div,如果不匹配,第一步就可以排除掉不匹配的div,這樣子也不用回溯啊
2018-08-01
我知道了,是因?yàn)楦腹?jié)點(diǎn)有多個子節(jié)點(diǎn),而子節(jié)點(diǎn)只有一個父節(jié)點(diǎn)的原因,
從上往下找必須要遍歷真?zhèn)€樹才行,而從下往上找,只需要一條線路就 可以,步驟少很多