ホームページ  >  記事  >  ウェブフロントエンド  >  jsコードセット(jsを勉強している友達は見てみてください)_javascriptスキル

jsコードセット(jsを勉強している友達は見てみてください)_javascriptスキル

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

/**
* @著者 Super Sha
* QQ:770104121
* E-Mail:supei_shafeng@163.com
* 公開日: 2009-3-27
* 著作権所有
*/

var JsHelper={}; //JsHelper ルート名前空間を宣言します
JsHelper.DOM = {} //JsHelper ディレクトリの下に DOM 名前空間を宣言します
JsHelper.Event={}; //JsHelper ディレクトリで Event イベント名前空間を宣言します
JsHelper.Browser={}; //JsHelper ディレクトリでブラウザ関連の関数を宣言します Browser 名前空間
JsHelper. }; //Jshelper ディレクトリで Ajax 関連の名前空間を宣言
JsHelper.String={}; //JsHelper ディレクトリで String 関連の名前空間を宣言

/*
* $ () は複数のパラメータを入力でき、オブジェクトの配列を返します。
*/
var $=function(){ // $ メソッドの簡易版
var elements=new Array (); if(arguments.length==0){ //パラメータが空の場合、ドキュメント要素を返します。
return document;
}
for (var i = 0; i { var element = argument[i];
if (typeof element == string )
{
element = document.getElementById(element);
if (arguments.length == 1)
{
要素を返す;
elements.push(要素);
要素を返す
}
JsHelper .DOM.$=function()
{
var elements=new Array();
for (var i = 0; i {
var 要素= 引数[i];
if (要素の種類 == 文字列 )
{ 要素 = document.getElementById(要素);
}
if (arguments.length == 1)
{
要素を返す;
}
elements.push(要素);
要素を返す
}
/*
* $Value()複数のパラメータを入力でき、取得したオブジェクトの Value 配列を返します。
*/
JsHelper.DOM.value=function()
{
var value=new Array() ; var i = 0; i {
var 要素 = argument[i];
if (typeof(element) == string )
{
var v =document.getElementById(element).value;
} if(arguments.length==1)
{
return v;
}
values .push(v);
}
戻り値;
}
/*
makeArray は、パラメーターが空の場合は「unknown」を返し、それ以外の場合は Array*/
JsHelper.String.makeArray=function()
{
var value=new Array();
if(arguments.length>0){
for ( var i = 0; i {
var element=arguments[i];
if(typeof element == "string")
{
values. );
}
} }
else
{
return "未定義";
}
/*
* 接続文字列のパフォーマンスの問題を処理する StringBuilder クラスを宣言します
*/
JsHelper.String.StringBulider={
_strs:new Array(),
append: function( str){ //文字列を属性 _strs に追加します
this._strs.push(str);
return this;
},
toString:function(){
if (arguments .length != 0) {
return this._strs.join(arguments[0]); //属性 _strs を結合した後の文字列を返し、結合パラメータのオプションのパラメータを受け入れます
} else{
return this._strs.join ("");
}
}
};

/*
* $TagName() はパラメータを入力し、要素 TagNeme オブジェクトの配列を返します
* /
JsHelper.DOM.tagName=function()
{
var element=arguments[0];
if(typeof element== string )
{
var tagname=document .getElementsByTagName(要素);
}
タグ名を返します;

//========== =========== ======================================
/*
* ラベル: HTMLラベル ID
* responseText でのみ使用できます
* GET メソッドでのみ使用できます
*/
var _xmlhttp;//グローバル XMLHttpRequest オブジェクトを宣言します 例
function Ajax(method, url, label){
this.method = メソッド;
this.url = url;
try {
_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" )
catch (e) {
try {
_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (s) {
_xmlhttp = new XMLHttpRequest(); }
}
Ajax.prototype.ResponseText = function(){
_xmlhttp.onreadystatechange = this.onComplete;
_xmlhttp.open(this.method, this .url, true)
_xmlhttp .send(null);
}
Ajax.prototype.onComplete = function(){
if (_xmlhttp.readyState == 4) {
if ( _xmlhttp.status == 200) {
$(label).innerHTML = _xmlhttp.responseText;
}
}
}
this.ResponseText()
}
//======= =========================================

/*
* ブラウザの種類を決定します
*/
var ua = navigator.userAgent.toLowerCase();
if (window.ActiveXObject) {
JsHelper.IE = ua.match(/msie) ([d.] )/)[1];
}
else if (document.getBoxObjectFor) {
JsHelper.Browser.Firefox = ua.match( /firefox/([d.] )/ )[1];
}
else if (window.MessageEvent && !document.getBoxObjectFor) {
JsHelper.Browser.Chrome = ua.match(/chrome /([d.] )/)[ 1];
}
else if (window.opera) {
JsHelper.Browser.Opera = ua.match(/opera.([d.] ) /)[1];
else if (window.openDatabase) {
JsHelper.Browser.Safari = ua.match(/version/([d.] )/)[1];
/*
* XMLHttpRequest オブジェクトのインスタンスを宣言し、そのインスタンスを返します。
*/
JsHelper.Ajax.createRequest=function()
{
var xmlhttp=null; > try
{
xmlhttp=new XMLHttpRequest();
}
catch(trymicrosoft){
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); > }
catch(othermicrosoft){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
}
return
}

/ *
* 一般的な AddEventListener 関数、obj は DOM 要素です
*/
JsHelper.Event.addEventlistener=function(labelID,eventMode,fn)
{
var obj=JsHelper.DOM . $(labelID);
if (typeof window.addEventListener != unknown ) {
obj.addEventListener(eventMode, fn, false);
else
if (typeof window.addEventListener) addEventListener != 未定義 ) {
obj.addEventListener(eventMode, fn, false);
}
else
if (typeof window.attachEvent != 未定義 ) {
obj.attachEvent(" on "eventMode, fn);
}
else {
return false;
}
return true;
}

/*
* が含まれていますDouglas Crockford による関数メソッドの拡張。以下の 3 つの関数の著作権は Douglas Crockford に属します。
*/
Function.prototype.method = function (name, func) {
this.prototype[ name] ] = func;
return this;
};
Function.method( 継承 , function (parent) {
var d = {}, p = (this.prototype = newparent() ) ;
this.method(base , function uber(name) {
if (!(d の名前)) {
d[name] = 0;
}
var f, r , t = d[名前], v =parent.prototype;
if (t) {
while (t) {
v = v.constructor.prototype;
🎜>}
f = v[名前];
} else {
f = p[名前];
if (f == this[名前]) {
f = v [
}
}
d[名前] = 1;
r = f.apply(this, Array.prototype.slice.apply(arguments, [1])); >d[名前] -= 1;
return this;
}); for (var i = 1; i var name = argument[i];
this.prototype[name] =parent.prototype[name];
return this;
});

/*
* IE が HTMLElement
*/
var DOMElement ={ をサポートしていない問題の解決策extend : function(name,fn)
{
if(!document.all)
{
eval("HTMLElement.prototype." name " = fn"); > else
{
var _createElement = document.createElement;
document.createElement = function(tag)
{
var _elem = _createElement(tag); " name " = fn");
return _elem;
}
var _getElementById = document.getElementById;
document.getElementById = function(id)
{
var _elem = _getElementById ( id);
eval("_elem." name " = fn");
return _elem>}
var _getElementsByTagName = document.getElementsByTagName = function(tag) )
{
var _arr = _getElementsByTagName(tag);
for(var _elem=0;_elem<_arr.length>eval("_arr[_elem]." name " = fn " );
return _arr;
}
}
}
};
/*
* 以下は、父である John Resig のいくつかの DOM クエリ関数をモデルにしています。 jQuery 機能の
*/
DOMElement.extend("previous",function(){ // 以前の Sibling DOM 関数と同様
var elem=this;
do{
elem=elem. PreviousSibling ;
}while(elem&&elem.nodeType!=1);
<_arr.length>DOMElement.extend("next",function(){ // と同様nextSibling DOm 関数
var elem=this;
do{
elem=elem.nextSibling;
return elem; ;
DOMElement.extend("first",function(num){ //firstChild DOM 関数と同様、親と同じ
var elem=this;
num=num||1;
(var i = 0; i elem = elem.firstChild;
}
return (elem && elem.nodeType!=1 ? next(elem):elem); >} );
DOMElement.extend("last",function(num){ //lastChild DOM 関数と同様、親と同じ
var elem=this;
num=num||1;
for (var i = 0; i elem = elem.lastChild;
}
return (elem && elem.nodeType!=1 ? prev(elem):elem) ;
});
DOMElement.extend("parent",function(num){ //parentNode の複数の num レベルを返すことができます。たとえば、parent(2) は elem.parent() と同等です。親();
var elem=this;
num=num ||1;
for (var i = 0; i if (elem != null)
elem = elem.parentNode;
}
} return elem;
});
DOMElement.extend("hasChilds",function(){ //子ノード
if(this!=null && this.hasChildNodes()){
return true;
}
else{
return false;
DOMElement.extend("text",function(){ //ラベル内のテキストを取得します。パラメーターがゼロでない場合、ラベル内のテキストのバージョンを設定できます。入力にも適していますラベル
try{ //InnerText をサポートしていない Firefox の解決策
HTMLElement.prototype.__defineGetter__("innerText",function(){
var anyString = "";
var childS = this.childNodes ;
for(var i =0; iif (childS[i].nodeType == 1) { anyString = childS[i].tagName == " BR" ? "n : childS[i].innerText;
else if(childS[i].nodeType == 3) {
anyString = childS[i].nodeValue;
}
return
}); 🎜>}
catch(e){}
if (arguments.length == 1) {
if (this.innerText) {
this.innerText = argument[0]; }
else {
this.value = argument[0];
}
else {
this.innerText を返します
} });
DOMElement.extend("html",function(){ //要素の innerHTML を取得します。パラメータがゼロでない場合は、要素内にテキストと子ノードを設定できます。
if (arguments.length= =0){
return this.innerHTML;
}
else if(arguments.length==1)
{
this.innerHTML=arguments[0];
}
});

/*
* 以下は className
*/
DOMElement.extend("getClassName",function(){ / /Return 要素 className
if(this!=null&&this.nodeType==1){
return this.className.replace(/s /, ).split( );
return null;
});
DOMElement.extend("hasClassName",function(){ //クラスが存在するかどうかを判断します class
if(this!=null&&this.nodeType==1){
var class=this.getClassName();
for(var i=0;iif(arguments[0]==classes[i]) return true;
}else{
return false;
}
});
DOMElement.extend("addClass",function(){ // 要素にクラスを追加できます複数のクラスを一度に
if( this!=null&&this.nodeType==1){
for (var i = 0; i this.className = (this.className ? : ) 引数[i];
これを返します;

DOMElement.extend("removeClass",function(){ / /パラメータがない場合はクラスを削除し、すべてのクラスを削除します。
if (this != null && this.nodeType == 1) {
if (arguments.length == 0) {
this .className = ""; }
else if(arguments.length!=0) {
var class=this.getClassName();
for (var i = 0; i for (var j = 0; j if (arguments[i]==classes[j]) {
classes =classes.join( " ").replace(arguments[i], ).split(" ");
}
}
}
this.className=classes.join(" ");
return this;
}
return null; JsHelper.__toggleflag=false; //判定スイッチを追加しますDOMElement.extend("toggleClass",function( classname){ //2 回のクリックで呼び出される関数 異なる
if(this!=null && this.nodeType==1){
this.onclick=function(){
if(JsHelper.__toggleflag== false){
this.addClass( クラス名);
JsHelper.__toggleflag = true;
}else if (JsHelper.__toggleflag == true) {
this.removeClass(クラス名); JsHelper.__toggleflag = false;
}
}
}
});
/*
* jQuery の click メソッドの使用方法と同様に、click メソッドを各オブジェクトに追加します。 🎜>*/
DOMElement.extend("click",function(){
if(this!=null && this.nodeType==1){
if(arguments.length==0){
alert("クリックした時点では何も行われていません。");
}else{
}
}
}); 🎜>
/*
* このメソッドは 2 つの関数をパラメータとして受け取ります。
*/
DOMElement.extend("hover",function(){
if) (this!=null && this.nodeType==1){
if(arguments.length!=2){
alert("パラメータには 2 つの関数が必要です。"); else{
this.onmouseover=arguments[0];
this.onmouseout=arguments[1];
}
}); イベントを追加する関数各要素に
* /
DOMElement.extend("addEvent",function(eventtype,fn){
if(document.all){
this.attachEvent("on"eventtype,fn) ;
}else{
this.addEventListener(eventtype,fn,false);
/*
* を受け入れて、各要素の CSS メソッドを拡張します。パラメータとしての属性と属性値
*/
DOMElement.extend("css",function(){
if(this!=null && this.nodeType==1){
if(arguments .length!=2){
alert("param には 2 つの関数が必要です。");
}else{
this.style[arguments[0]]=arguments[1];関連するスタイル属性の値
return this;
}
return
});
/*
* //特定のクラスに存在し、名前は className、type は HTML タグのタイプ
*/
var hasClass = function(name,type){
var r = new Array(); var re = new RegExp(name," g");
var e=document.getElementsByTagName(type||"*");
for(var i=0;ivar class=e[i ].getClassName();
for (var j = 0; j if (name== class[j]) {
r.push(e[i] );
}
}
}
return r;
}
/*
* 特定の子要素参照のコレクションを返します。要素がない場合は、このメソッドのデフォルトは document
*/
DOMElement.extend("find",function(){
var elem=this||document; です。
var r=new Array();
if(elem!=null && (elem.nodeType==1||elem.nodeType==9)){
var e=elem.getElementsByTagName(arguments) [0]);
for(var i =0;ir.push(e[i]);
return

null を返す
}) ;

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