国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關

來源:懂視網 責編:小采 時間:2020-11-27 20:38:44
文檔

YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關

YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關:先繞開頭部很多的 if...else (其實就是定義 toCamel 與 getStyle 兩個函數) - 由于瀏覽器的實現不統一,才造成如此麻煩的情況,回頭可以聊聊這些代碼。 下面我們在 YAHOO.util.Dom 類中看看有哪些寶藏。目前思想已經逐步的分裂,我看見個函數說個函數。 /
推薦度:
導讀YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關:先繞開頭部很多的 if...else (其實就是定義 toCamel 與 getStyle 兩個函數) - 由于瀏覽器的實現不統一,才造成如此麻煩的情況,回頭可以聊聊這些代碼。 下面我們在 YAHOO.util.Dom 類中看看有哪些寶藏。目前思想已經逐步的分裂,我看見個函數說個函數。 /

先繞開頭部很多的 if...else (其實就是定義 toCamel 與 getStyle 兩個函數) - 由于瀏覽器的實現不統一,才造成如此麻煩的情況,回頭可以聊聊這些代碼。

下面我們在 YAHOO.util.Dom 類中看看有哪些寶藏。目前思想已經逐步的分裂,我看見個函數說個函數。

// 基本上可以認為是 document.getElementById 的翻版
get: function(el) {
// 如果已經是 HTMLElement ,那么就直接返回
if (el && (el.nodeType || el.item)) {
return el;
}

// 如果是字符串,那么就返回有這個 ID 的 Element
if (YAHOO.lang.isString(el) || !el) {
return document.getElementById(el);
}

// 看起來是個數組,循環調用自身,獲取 Eelement
if (el.length !== undefined) {
var c = [];
for (var i = 0, len = el.length; i < len; ++i) {
c[c.length] = Y.Dom.get(el[i]);
}

return c;
}

return el;
},這段代碼寫得非常的精妙。坦白的說,上述代碼中的循環體,如果不加思索的話,恐怕就會寫成

for (var i = 0, len = el.length; i < len; ++i) {
c[c.length] = document.getElementById(el[i]);
}雖然也能正常工作,但是前面的判斷就失去了意義。

繼續走馬觀花,現在看看 getElementsByClassName 的內部機制。有關 getElementsByClassName 的詳細調用,可以參看 YUI 文檔。

getElementsByClassName: function(className, tag, root, apply) {
// 獲取 tag 標簽,默認為所有(“*”)
tag = tag || '*';
// 指定跟節點名
root = (root) ? Y.Dom.get(root) : null || document;
if (!root) {
return [];
}

// 初始化節點信息
var nodes = [],
elements = root.getElementsByTagName(tag),
re = getClassRegEx(className);

// 濾掉不符合規則的節點
for (var i = 0, len = elements.length; i < len; ++i) {
if ( re.test(elements[i].className) ) {
// 你一定很奇怪為什么用 nodes.length 而不是用 i
// 仔細考慮下 :^)
nodes[nodes.length] = elements[i];
// 執行回調函數
if (apply) {
apply.call(elements[i], elements[i]);
}
}
}

return nodes;
},教科書式的 DOM 節點獲取和過濾,初始化數據以及操作數據都顯得非常的嚴謹而且正規,YUI 的代碼讓我有幾分的“安全感”。類似的,再來一個 getElementsBy 函數,相應代碼如下

getElementsBy: function(method, tag, root, apply) {
// 與上述函數相同,略
tag = tag || '*';
root = (root) ? Y.Dom.get(root) : null || document;

if (!root) {
return [];
}

var nodes = [],
elements = root.getElementsByTagName(tag);

for (var i = 0, len = elements.length; i < len; ++i) {
// 根據自定義函數返回值判斷節點的屬性
if ( method(elements[i]) ) {
nodes[nodes.length] = elements[i];
if (apply) {
apply(elements[i]);
}
}
}

return nodes;
},OK,今天就先到這里。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關

YUI讀碼日記之YAHOO.util.Dom-Part.1_YUI.Ext相關:先繞開頭部很多的 if...else (其實就是定義 toCamel 與 getStyle 兩個函數) - 由于瀏覽器的實現不統一,才造成如此麻煩的情況,回頭可以聊聊這些代碼。 下面我們在 YAHOO.util.Dom 類中看看有哪些寶藏。目前思想已經逐步的分裂,我看見個函數說個函數。 /
推薦度:
標簽: Yahoo Part yui
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美色图在线观看 | 国产成人一区二区三区高清 | 国产精品1000部在线观看 | 国产高清精品久久久久久久 | 国产传媒一区二区三区四区五区 | 成人精品一区二区三区 | 亚洲精品日韩中文字幕久久久 | 国产在线欧美日韩一区二区 | 国产精品1区2区3区在线播放 | 欧美国产成人精品一区二区三区 | 毛片一级免费 | 国产一级毛片在线 | 91麻豆视频网站 | 国产观看 | 亚洲第一视频区 | 国产精品不卡视频 | 国产不卡在线 | 亚洲精品国产精品国自产观看 | 亚洲视频免费观看 | 日本国产一区二区三区 | 国产成人欧美一区二区三区的 | 最新国产精品电影入口 | 在线一区二区三区 | 成人亚洲综合 | 久久国语精品 | 亚洲欧美日本在线观看 | 亚洲va欧美ⅴa国产va影院 | 亚洲国产成人精品区 | 日韩欧美网站 | 五月天婷婷久久 | 日韩在线电影 | a黄毛片 | 亚洲一区综合 | 国产欧美日韩视频 | 久久精品国产免费一区 | 亚洲国产精品一区二区久久 | 欧美日韩v| 精品伊人久久 | 亚洲欧美日韩中文v在线 | 国产99视频精品草莓免视看 | 欧美日本中文字幕 |