📄 v2.4.js
字号:
/**************
默认的 element.className = "" ;是 替换样式。
如果我们是想追加样式, 那么使用下面的方法
用法;
addClass(element,"classname");
用了这个函数后:
那么将追加成 :
<p class=”b classname”>aaaaaaaaaaaaaaaaaaa</p>
**************/
function addClass(element,value) { //追加样式,而不是替换样式
if (!element.className) {
element.className = value;
} else {
element.className+= " ";
element.className+= value;
}
}
/**************
表格隔行变色。
注意:引入 我们自己写的 addClass()函数。
**************/
function stripeTables() {
if (!document.getElementsByTagName) return false;
var tables = document.getElementsByTagName("table");
for (var i=0; i<tables.length; i++) {
var odd = false;
var rows = tables[i].getElementsByTagName("tr");
for (var j=0; j<rows.length; j++) {
if (odd == true) {
addClass(rows[j],"odd");//odd为样式名
odd = false;
} else {
odd = true;
}
}
}
}
/**************
表格滑过变色.
注意:引入 我们自己写的 addClass()函数。
**************/
function highlightRows() {
if(!document.getElementsByTagName) return false;
var rows = document.getElementsByTagName("tr");
for (var i=0; i<rows.length; i++) {
rows[i].oldClassName = rows[i].className
rows[i].onmouseover = function() {
addClass(this,"highlight");//highlight为样式名
}
rows[i].onmouseout = function() {
this.className = this.oldClassName
}
}
}
/********************
隔行变色 + 滑过变色
参数设置:
id 为表格的id
class1为奇数行的颜色
class2为偶数行的颜色
class3为鼠标滑过颜色
用法:
sti_table("cssrain" , "c" , "a" ,"d" );
<style>
.a{
background-color : #eee;
}
.c{
background-color : #96dd33;
}
.d{
background-color : #456577;
}
</style>
<TABLE id="cssrain" >
<TR>
<TD>1</TD>
</TR>
</table>
*********************/
function sti_table( id , class1 , class2 , class3 ){
var para = document.getElementById(id);
var tr = para.getElementsByTagName("tr");
var odd = false;
for(var i=0 ; i < tr.length ; i++ ){
if(odd==true){
tr[i].className = class1;
odd=false;
tr[i].onmouseover =function(){
this.className = class3;
}
tr[i].onmouseout =function(){
this.className = class1;
}
}
else{
tr[i].className = class2;
odd=true;
tr[i].onmouseover =function(){
this.className = class3;
}
tr[i].onmouseout =function(){
this.className = class2;
}
}
}
}
//格式化日期和数字
//用法:
//var date=new Date();
//var dateText = format("YYYY-MM-DD",date)
//var numberText=format("###.#",5432.545)
//document.write(dateText)
//document.write("<br />"+numberText)
//like the ISO 8895
//also see Java's SimpleDateFormat.
//
//Letter Date or Time Component Presentation Examples UserDic
//Y Year Year 1996; 96
//M Month in year Month July; Jul; 07 *
//D Day in month Number 10
//w Day in week Text Tuesday; Tue; 2 *
//h Hour in day (0-23) Number 0
//m Minute in hour Number 30
//s Second in minute Number 55
//Pattern Sample
//YYYY-MM-DD hh:mm:ss 2001-07-04 12:08:56
//YYYY-MM-DDThh:mm:ss 2001-07-04T12:08:56
//YYYY/MM/DDThh:mm:ss 2001/07/04T12:08:56
//YYYY年MM月DD日,周w 2008年12月12日,周3
//hh:mm 12:08
//符号说明:
//0 表示补0 的数字占位
//. 表示小数点
//, 数字分组符号 如123,456.123
//# 表示不补0 的数字占位
//
//Number Pattern Result
//10000000000001124 #,###.### 10,000,000,000,001,124.000
//123.125 ##,#.#,# 1,2,3.1,3
//123.125 ###.# 123.1
//123.125 00000 00123
//123.125 .000 .125
//0.125 0.0000 0.1250
//0.125 00.0000 00.1250
//
//使用代码:
//var numberText = format("##.#",123.456)//output 123.45
function format(pattern,data){
if(data instanceof Date){
function dl(data,format){//3
format = format.length;
data = data || 0;
return format = 1 ? data : String(Math.pow(10,format)+data).substr(-format);
}
return pattern.replace(/([YMDhsm])\1*/g,function(format){
switch(format.charAt()){
case 'Y' :
return dl(data.getFullYear(),format);
case 'M' :
return dl(data.getMonth()+1,format);
case 'D' :
return dl(data.getDate(),format);
case 'w' :
return data.getDay()+1;
case 'h' :
return dl(data.getHours(),format);
case 'm' :
return dl(data.getMinutes(),format);
case 's' :
return dl(data.getSeconds(),format);
}
});
}else if('number' == typeof data){
//hack:purePattern as floatPurePattern
function trim(data,pattern,purePattern){
if(pattern){
if(purePattern){
if(purePattern.charAt() == '0'){
data = data + purePattern.substr(data.length);
}
if(purePattern!=pattern){
var pattern = new RegExp("(\\d{"+pattern.search(/[^\d#]/)+"})(\\d)");
while(data.length < (data = data.replace(pattern,'$1,$2')).length);
}
data = '.' + data
}else{
var purePattern = pattern.replace(/[^\d#]/g,'');
if(purePattern.charAt() == '0'){
data = purePattern.substr(data.length) + data;
}
if(purePattern!=pattern){
var pattern = new RegExp("(\\d)(\\d{"+(pattern.length-pattern.search(/[^\d#]/)-1)+"})\\b");
while(data.length < (data = data.replace(pattern,'$1,$2')).length);
}
}
return data;
}else{
return '';
}
}
return pattern.replace(/([#0,]*)?(?:\.([#0,]+))?/,function(param,intPattern,floatPattern){
var floatPurePattern = floatPattern.replace(/[^\d#]/g,'');
data = data.toFixed(floatPurePattern.length).split('.');
return trim(data[0] ,intPattern) + trim(data[1] || '',floatPattern,floatPurePattern);
})
}
}
//除法函数,用来得到精确的除法结果
//说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用:accDiv(arg1,arg2)
//返回值:arg1除以arg2的精确结果
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}
//给Number类型增加一个div方法
//用法: (37).div(3);
Number.prototype.div = function (arg){
return accDiv(this, arg);
}
//乘法函数,用来得到精确的乘法结果
//说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用:accMul(arg1,arg2)
//返回值:arg1乘以arg2的精确结果
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
//给Number类型增加一个mul方法
//用法: (37).mul(3);
Number.prototype.mul = function (arg){
return accMul(arg, this);
}
//加法函数,用来得到精确的加法结果
//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用:accAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function accAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
//给Number类型增加一个add方法
//用法: (37).add(3);
Number.prototype.add = function (arg){
return accAdd(arg,this);
}
//减法函数,用来得到精确的减法结果
function Subtr(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
//last modify by deeka
//动态控制精度长度
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}
//给Number类型增加一个add方法
//用法: (5.5).sub(37.5)
Number.prototype.sub = function (arg){
return Subtr(arg,this);
}
//格式化字符串
/*
用法:
var cls="redclass";
var text="My name is ";
var str='<div class="{0}">{1} {2}</div>'.diy_format(cls, text,"cssrain");
alert(str);
*/
String.prototype.diy_format=function(){
var args=arguments;
return this.replace(/\{(\d+)\}/g, function(m, i){
return args[i];}
);}
//去掉数组中重复的元素
//用法:
//var arr=["abc",85,"abc",85,8,8,1,2,5,4,7,8];
//alert( arr.strip() );
Array.prototype.strip=function(){
if(this.length<2) return [this[0]]||[];
var arr=[];
for(var i=0;i<this.length;i++){
arr.push(this.splice(i--,1));
for(var j=0;j<this.length;j++){
if(this[j]==arr[arr.length-1]){
this.splice(j--,1);}}}
return arr;
}
//得到l-h下标的数组
//用法:
//var arr=["abc",85,"abc",85,8,8,1,2,5,4,7,8];
//alert( arr.limit(2,4) ); //输出 abc , 85 ,8
Array.prototype.limit = function(l, h) {
var _a = this; var ret = [];
l = l<0?0:l; h = h>_a.length?_a.length:h;
for (var i=0; i<_a.length; i++) {
if (i>=l && i<=h) ret[ret.length] = _a[i];
if (i>h) break;
}; return ret;
}
//指定array是否包含指定的item
//array.exists( item ) 包含true;不包含false;
//用法:
//var array1 = [1,2,3,4,5,"a","b"];
//var b1 = array1.exists("b") // 包含true;不包含false;//alert(b1)
function Array.prototype.exists( item )
{
for( var i = 0 ; i < this.length ; i++ )
{
if( item == this[i] )
{
return true;
}
}
return false;
}
//删除指定的item
//array.remove(item) 删除item
//用法:
//var array1 = [1,2,3,4,5,"a","b"];
//array1.remove("2");
//alert( array1[1] );
function Array.prototype.remove( item )
{
for( var i = 0 ; i < this.length ; i++ )
{
if( item == this[i] )
{
break;
}
}
if( i == this.length )
{
return;
}
for( var j = i ; j < this.length - 1 ; j++ )
{
this[ j ] = this[ j + 1 ];
}
this.length--;
}
//得到url参数值
// url: http:www.cssrain.cn/article.asp?id=100
// var id = getParameter("id");
// alert(id);
function getParameter(key)
{
var parameters = unescape(window.location.search.substr(1)).split("&");
for( var i = 0 ; i < parameters.length ; i++ )
{
var paramCell = parameters[i].split("=");
if( paramCell.length == 2 && paramCell[0].toUpperCase() == key.toUpperCase() )
{
return paramCell[1];
}
}
return new String();
}
//获取某月有几天 ,月份是从 0开始
//用法:alert( jscomGetMonthDays(2008 , 4) )
function jscomGetMonthDays(year,month)
{
if(month<0 || month>11)
{
return 30;
}
var arrMon = new Array(12);
arrMon[0] = 31;
if(year % 4 == 0)
{
arrMon[ 1] =29;
}else{
arrMon[ 1] =28;
}
arrMon[ 2] = 31; arrMon[ 3] = 30;
arrMon[ 4] = 31; arrMon[ 5] = 30;
arrMon[ 6] = 31; arrMon[ 7] = 31;
arrMon[ 8] = 30; arrMon[ 9] = 31;
arrMon[10] = 30; arrMon[11] = 31;
return arrMon[month];
}
/**
* 以document.write的方式向页面中写入js
* 参数 :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -