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