ホームページ  >  記事  >  ウェブフロントエンド  >  cssQuery オブジェクト JavaScript スクリプト実装 code_js オブジェクト指向

cssQuery オブジェクト JavaScript スクリプト実装 code_js オブジェクト指向

WBOY
WBOYオリジナル
2016-05-16 18:49:381139ブラウズ
コードをコピー コードは次のとおりです:

/**
* @著者スーパーシャ
* @QQ:770104121
*/
var cssQuery = {
//parent: 現在のノードの親ノードへの参照を保存するために使用されます
parent: document,
select: function(selectorStr){
var selectors=selectorStr.split( " "); // 分割された文字列
for (var i = 0, len = selectors.length; i
var el = this.parent || ノードは指定されたクラス属性を格納 Reference
var val=this.replaceStr(selectors[i]); //「#」と「.」のドットを置き換えて、指定された ID のノード参照を取得します
if (selectors.length == 1) { //パラメータが 1 つだけの場合
if (!(/[#.]/g).test(selectors[i])) { //HTML タグの場合
return document.getElementsByTagName(selectors[ i]);
}
else { //ID または指定されたクラス値の場合
//ID かクラス属性かを判断します
return (this.IDLabel(selectors[i])) this.$(val) : this.getElementsByClassName(document, "*", val);
}
}
//最後の ID またはselectorStr 文字内のクラスまたは HTML タグに到達しました
else if(i == selectors.length-1){
if (!(/[#.]/g).test(selectors[i])) { //HTML タグの場合
return el .getElementsByTagName(selectors[i]);
}
else { //ID またはクラス属性の場合
return (this.IDLabel (selectors[i])) this.$(val) : this .getElementsByClassName(el,"*",val);
}
}
else{ // 3 つ以上のレベルがある場合selectorStr の親属性に現在のノードの参照を格納します
if ( !(/[#.]/g).test(selectors[i])) { //HTML タグの場合
this.parent = el.getElementsByTagName(selectors[i])[0];
}
else { //ID またはクラス属性の場合
this.parent = ((/#/gi) .test(selectors[i])) ? this.$(val) : el;
}
}
},
$: function(id){ //使用するリファレンス指定された ID を取得します
return document.getElementById(id);
},
IDLabel: function(selector){ //ID 属性かどうかを判断します
return ((/#/gi ).test(selector)) ? true : false;
},
classLabel: function(selector ){ //クラス属性かどうかを判断します
return ((/./gi).test( selector)) ? true : false;
},
replaceStr:function(a){ //「#」と「.」のドットは、指定された ID のノード参照を取得するために使用されます。 .replace("#","").replace(".","");
},
getElementsByClassName: function(el, tag, classname){ // を含む要素の参照を取得します。クラス属性値を通じて
var elem = el ||
if (!classname)
tag = tag "*"; ((tag == "*") && (elem.all)) elem.all : elem.getElementsByTagName(tag); クラス名 = classname.replace(/-/g, "\-"); >var regex = new RegExp("(^|\s*)" クラス名 "(\s*|$)");
var matchElements = new Array();
for ( var i = 0; allTagsDom.length; i ) {
element = allTagsDom[i]
if (regex.test(element.className)) { //通常のルールに従ってクラス名を検出します🎜>matchElements.push(element);
}
}
return matchElements;
}
}
// 次のようにメソッドを呼び出します: cssQuery.select(selectorString); "#p #b .em",
//HTML タグ、ID、クラスの組み合わせを受け取り、指定された selectorString を返すことができます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。