從右到左選擇 五大迭代器

2021-09-06 01:58:34 字數 3282 閱讀 4959

如果是從左到右,我們想過濾一些節點,就用現在手頭上的節點就行了,但從右到左,我們就需要根據這些節點的父親、孩子、兄弟進行過濾,而且過濾後,這些用作比較的節點不能丟棄掉,它們可以還要用於下一次的過濾。這樣就存在乙個**關係,我們需要一些**器來幹這事情。當然像div.aaa是不需要**器,但div div.aaa就需要了。在從左到右的情況下,我們所有說的關係選擇器,主要有親子兄長與相鄰三種,遇到後代選擇器,我們可以轉化為萬用字元選擇器與標籤選擇器。而在從右到左,關係選擇器就包括後代萬用字元親子兄長相鄰五種,萬用字元實質是一種帶層次關係的後代選擇器。

//取得候選集的共同父節點的合集

var getparent = function(testee,result,yess,pid)

}return result;

}var iterators =

}nextset.nodes = result;

},parent:function(nextset), testee, uid, pid;

for(var i = 0,ri = 0, node; node = nodes[i++];)

yess[pid] = result[ri++] = node;

nextset[uid] = testee;

}break;}}

nextset.nodes = result;

},iterators.parents = function (nextset) ;

for (var i = 0, ri = 0, node; node = nodes[i++];)

if (!testee)

}pid = testee.uniqueid || (testee.uniqueid = dom.uid++);

if (yess[pid])

if ((!tagname || tagname === testee.nodename) &&

yess[pid] = result[ri++] = node;

nextset[uid] = getparent(testee, result, yess, pid);

break;}}

}}

nextset.nodes = result;

}border:function(nextset)

break;}}

nextset.nodes = result;

},borders:function(nextset), testee, uid, pid;

for(var i = 0,ri = 0, node;node = nodes[i++];)

yess[pid] = result[ri++] = node;

nextset[uid] = testee;

break;}}

}nextset.nodes = result;

}}

它們幾個好相似,正在考慮是否動態生成它們……

property

value

display

inline-block

height

any value

float

left or right

position

absolute

width

any value

writing-mode

tb-rl

zoom

any value

11111111

54354435

aaaaaaaaa

bbbbbbbcccccccdddddddd

44444444

555555555

執行**

用時間截代替uid的篩選功能

選擇div div div

3

3

後代

var fathers = function () 

if (testee.nodename === "div")

}i++;

}this[0] = _nodes;

this[1] = _set;

this.length = 3;

}

親子

var father = function () 

if (testee.nodename === "div")

break;

}i++;

}this[0] = _nodes;

this[1] = _set;

this.length = 3;

}

2011.1.26

var border = function (expr, set, flag_xml) );

for (var i = 0, n = set.length; i < n; i++) ;

testee = testee && testee.nodename === selector && testee || false;}}

expr && filter.call(null, expr, set, true);

}

var parent = function (expr, set, flag_xml) );

for (var i = 0, n = set.length; i < n; i++)

}expr && filter.call(null, expr, set, true);

}

var borders = function (expr, set, flag_xml)  else 

return '';

});if (expr === old)

_filter.call(null, selector, set, prop, flag_fn);

expr && filter.call(null, expr, set, true);

}

var parents = function (expr, set, flag_xml)  else 

return '';

});if (expr === old)

_filter.call(null, selector, set, prop, flag_fn);

expr && filter.call(null, expr, set, true);

}

mysql五大正規化 MySQL五大正規化

第一正規化 1nf 資料表的每一列都要保持它的原子特性,也就是列不能再被分割。這張表就不符合第一正規化規定的原子性,不符合關係型資料庫的基本要求,在關係型資料庫中建立這個表的操作就不能成功。不得不將資料表設計為如下形式。第二正規化 2nf 概率 屬性必須完全依賴於主鍵。下滿這張表不符合第二正規化的要...

五大瀏覽器核心

一般說的瀏覽器核心是指瀏覽器最重要的核心部分,renderingengine,翻譯成中文大概意思就是 解釋引擎 我們一般稱為瀏覽器核心。由於不同的核心各自有一套自己的渲染網頁和解釋頁面 的機制,所以就會有一些問題存在。首先,都有哪些瀏覽器呢?谷歌瀏覽器 google chrome。火狐瀏覽器 moz...

mysql五大儲存引擎 mysql五大儲存引擎

mylsam mylsam表無法處理事務,這就意味著有事務處理需求的表,不能使用mylsam儲存引擎。innodb innodb是乙個健壯的事務型儲存引擎mysql5.6版本以後innodb就是作為預設的儲存引擎。innodb還引入了行級鎖定和鍵外約束。memory 使用mysql memory儲存...