ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの共通関数ライブラリを詳しく解説_JavaScriptスキル

JavaScriptの共通関数ライブラリを詳しく解説_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:43:591051ブラウズ

この目的のために、私が日常生活でよく使用するいくつかの JavaScript 関数を集め、他の JS ライブラリでもよく使用されるものをまとめて、皆さんの参考になれば幸いです。
注: 参照しやすいように、次のすべての関数が CC オブジェクトに配置されていると想定されています。

コードをコピー コードは次のとおりです:

//このメソッドは最も一般的に使用される
//セレクターほど強力ではありませんが、指定されたノードの下の ID を持つサブ要素をチェックできる小規模な拡張バージョンもあります
function $(id, p) {
//ID が文字列であるか、HTML ノードであるか
var iss = id instanceof String || typeof id == "string";
if (iss && !p)
return document.getElementById(id);
//ノードの場合はノードを直接返します
if(!iss)
return id
//id と p が同じ要素の場合、直接 return
if(p. id == id)
return p
//親ノードを検索
var child = p.firstChild; {
if (child.id == id )
return child;
//再帰検索
var v = this.$(id, child);
if (v)
return v;
child = child.nextSibling ;
}
// 見つからない場合は null を返します
return null;


コードをコピーします

コードは次のとおりです: each: function(object, callback, args) { if (!object) { オブジェクトを返す; }
if (args) {
if (object.length === 未定義) {
for (オブジェクト内の変数名)
if (callback.apply(object[name], args) = == false) Break;
} else for (var i = 0, length = object.length; i
if ( callback.apply(object[i], args) === false) Break;
} else {
if (object.length == unknown) {
for (オブジェクト内の変数名)
if (callback.call(object[name], name, object [name]) === false) Break;
} else for (var i = 0, length = object.length, value = object[0];
i < length && callback.call(value, i, value) !== false;
value = object[ i]) {}
}
return object; 🎜>





コードをコピー

コードは次のとおりです:
return (typeof obj === "string" || obj instanceof String ); " || obj instanceof Function);
},
//Number type
function isNumber(ob) {
return (typeof ob === "number" || ob instanceof Number );
}






コードをコピーします


コードは次のとおりです:


// フォームの submittable 要素の送信文字列を返します。
//

// // var length = elements.length;
for (var s = 0; s elem = elements[s]; .tagName == 'INPUT') {
if ( (elem.type == 'radio' || elem.type == ' checkbox') && !elem.checked) {
Continue
}
}
if (formData != "") {
formData = "&";
}
formData = encodeURIComponent(elem.name||elem.id) "="
encodeURIComponent(elem.value);
}
return formData;






コードをコピーします。 >
コードは次のとおりです:

/**
* 指定された要素を配列から削除します。
* パラメーターには整数の添字または配列データを渡すことができます。*/
Array.prototype.remove = (function(p) {
//パラメータは添字です
if (CC.isNumber(p) ) {
if (p < 0 || p >= this.length) {
throw "Index Of Bounds:" this.length "," p;
}
this.splice ( p, 1)[0];
return this.length;
}
//パラメータは配列データであり、最終的には
if (this.length) を演算するための添字を見つける必要があります。 > 0 && this [this.length - 1] == p) {
this.pop();
} else {
var pos = this.indexOf(p); pos != -1 ) {
this.splice(pos, 1)[0]
}
}
return this.length>});



コードをコピーします
コードは次のとおりです。 Array.prototype.indexOf = (function( obj) { for ( var i = 0, length = this.length; i if (this[i] == obj) return i;
return - 1;
} ; 🎝>*/
validate: function() {
var args = CC.$A(arguments),
form = null;は空の要素ではありません。1 つのパラメータの最初の要素に配置する必要があります。
if (!CC.isArray(args[0])) {
form = CC.$(args[0]);
args.remove(0);
}
//設定項目がある場合は、最後のパラメータに配置する必要があります。 >//cfg.callback = function
//cfg.ignoreNull
//nofocus:true|false var b = CC.isArray(b) {}: args.pop(), d; var queryStr = b.queryString、ignoreNull = b.ignoreNull、var result = queryStr ? each(args, function(i, v) { //fomr に name 要素が存在しない場合は、それを ID として使用して
var obj = v[0].tagName ? v を取得します。 [0] : フォーム ? フォーム[v[0]] : CC.$( v[0]);
//console.debug('チェックフィールド:',v, '現在の値:' obj.value) ;
var value = obj.value、
msg = v[1]、
d = CC.isFunction(v[2]) v[3] : v[2]; /Option
if (!d || typeof d != 'object' ) d = b;
//null を無視するかどうか
if (!d.ignoreNull && (value == '' || value == null)) {
//コールバック関数がない場合、アラートを呼び出してエラー情報を表示します
if (!d.callback) CC.alert(msg, obj, form); //コールバックがある場合は、渡される 3 つのパラメータに注意してください
//msg: message ,obj: ノード、form: 対応するフォーム (存在する場合)
else d.callback(msg, obj, form);
//エラー後に収集するかどうか
if (!d.nofocus) obj.focus();
return false; //カスタム検証メソッド
if (CC.isFunction(v[2])) {
var ret = v[2](value, obj, form);
var pass = (ret !==) false);
if (CC.isString(ret)) {
msg = ret;
pass = false;
if (!pass) {
if (!d .callback) CC.alert(msg, obj, form);
//上記と同じ
else d.callback(msg, obj, form);
if (!d.nofocus) obj.focus ();
result = false;
return false;
}
}
//queryString が設定されておらず、フォームが存在しない場合、オブジェクトは
//このオブジェクトには、{elementName|elementId:value} の形式のデータが含まれます。
if (queryStr && !form ) {
result = (result == '') ? (typeof obj.name == '未定義' || obj.name == '') ? obj.id: obj.name)
'=' 値: '&' v[0] '=' 値; 🎜>} else if (!form) {
result[v[0]] = value;
}
} );
//queryString:true が設定され、検証が成功した場合、
if (result !== false && form && queryStr) result = CC.formQuery(form);





コードをコピー


コードは次のとおりです:


/**
* この関数は、JS の動的言語の機能を利用しています。
* サンプルを見るとよくわかります。 🎜>*/
templ: function(obj, str, st) {
return str.replace(/{([w_$] )}/g, function(c, $1 ) {
var a = obj[$1];
if (a === 未定義 || a === null) {
if (st === 未定義) return '';
switch (st) {
case 0:
戻り '';
戻り $1;
戻り
}
;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JavaScript自動補完スクリプト編成(33)_javascriptスキル次の記事:JavaScript自動補完スクリプト編成(33)_javascriptスキル

関連記事

続きを見る