个人整理了一下个人常用到的一些js代码,以方便学习以及日后使用,或许有一些是个人之前从网上摘下来的,但是不记得是具体从哪里来的了,如果你看到有一段代码跟你的文章很相似甚至一样,请不要气愤,请告诉我,我必定加上版权链接。

清除输入框默然提示文字

 <input type="text" name="word" value='请输入关键字' style="color:#ccc;" />
<script>
/*
*清除输入框默然提示文字
*/
jQuery.focusblur = function(focusid,focusColor,blurColor) {
var focusblurid = $(focusid);
var defval = focusblurid.val();
focusblurid.focus(function(){
var thisval = $(this).val();
if(thisval==defval){
$(this).val("");
$(this).css("color",focusColor);
}
});
focusblurid.blur(function(){
var thisval = $(this).val();
if(thisval==""){
$(this).val(defval);
$(this).css("color",blurColor);
}else{
$(this).css("color",focusColor);
}
}); }; $(document).ready(function(){
//清除name='world'的input里的默认提示文字
$.focusblur("[name='word']","#333","#ccc"); })
</script>

返回顶部

 <!-- 返回顶部 -->
<style>
#gotop{display:none; width:80px; height:30px; line-height:30px; text-align:center; border:1px solid #dedede; background-color:#f8f8f8; cursor:pointer;
position:fixed; bottom:40px; right:20px; z-index:99999;
}
</style>
<div id="gotop">gotop</div>
<script type='text/javascript'>
var backTop=function (btnId){
var btn=document.getElementById(btnId);
var d=document.documentElement;
var b=document.body;
window.onscroll=set;
btn.onclick=function (){
btn.style.display="none";
window.onscroll=null;
this.timer=setInterval(function(){
d.scrollTop-=Math.ceil((d.scrollTop+b.scrollTop)*0.1);
b.scrollTop-=Math.ceil((d.scrollTop+b.scrollTop)*0.1);
if((d.scrollTop+b.scrollTop)==0) clearInterval(btn.timer,window.onscroll=set);
},10);
};
function set(){btn.style.display=(d.scrollTop+b.scrollTop>800)?'block':"none"} //滚动的高度大于800px时才显示
};
backTop('gotop');
</script>
<!-- 返回顶部END -->

去除数组里的重复项

 /*
*去除数组里的重复项
*/
function uniQueue(array){
var arr=[];
var m;
while(array.length>0){
m=array[0];
arr.push(m);
array=$.grep(array,function(n,i){
return n==m;
},true);
}
return arr;
}
var testArr=[3,3,2,1,5,5];
alert(testArr); //[3,3,2,1,5,5]
alert(uniQueue(testArr)); //[3,2,1,5]

上一个要用到jquery,要引入jquery或许太麻烦了点,于是乎弄了个原生态js的

 //去除数组里的重复项(纯javascript实现)
function uniQueue(arr){
if(!(arr instanceof Array)) return false;
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]) arr.splice(j,1);
}
}
return arr;
} var arr=["a","b","a","c","c"];
uniQueue(arr); //arr=["a","b","c"]

为了方便使用,直接把它封装成Array的prototype原型对象函数

 //封装成Array对象的prototype原型对象函数(去除数组里的重复项)
Array.prototype.uniQueue=function(){
for(var i=0; i<this.length; i++){
for(var j=i+1; j<this.length; j++){
if(this[i]==this[j]) this.splice(j,1);
}
}
return this; } var arr=["a","b","a","c","c"];
arr.uniQueue(); //arr=["a","b","c"]

有时候或许需要这样子的要求:出现重复的时候,去除前面的,保留后面的,如要把["a","b","a","c","c"]去除重复项后要求变成这样子["b","a","c"]而不是["a","b","c"]。对之前的代码稍作修改即可:

 function uniQueue(arr){
if(!(arr instanceof Array)) return false;
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]) arr.splice(i,1); //删除出现相同元素中下标小的,即前者
}
}
return arr;
} var arr=["a","b","a","c","c"];
uniQueue(arr); //此时arr=["b","a","c"],而不是//arr=["a","b","c"]

冒泡排序

 /*
* 冒泡排序
*/
function bubbleSort(arg){
return bubbleSortTemp(arg.arr,
arg.order || "asc");
}
function bubbleSortTemp(arr,order){
if(!(arr instanceof Array)) return false;
if(order=="asc"){ //asc:升序
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}else if(order=="desc"){ //desc:降序
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]<arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}else{
return false;
}
}
//具体例子如下
var testArr=[2,4,5,1,3,6,8,7];
alert(testArr); //[2,4,5,1,3,6,8,7]
alert(bubbleSort({arr:testArr,order:"desc"})); //[8,7,6,5,4,3,2,1]
alert(bubbleSort({arr:testArr,order:"asc"})); //[1,2,3,4,5,6,7,8]
alert(bubbleSort({arr:testArr})); //[1,2,3,4,5,6,7,8]

把冒泡排序封装成prototype原型对象函数

 /*
*把冒泡排序封装成prototype原型对象函数
*/
Array.prototype.asc=function(){ //升序排序
for(var i=0;i<this.length;i++){
for(var j=i+1;j<this.length;j++){
if(this[i]>this[j]){
var temp=this[i];
this[i]=this[j];
this[j]=temp;
}
}
}
return this;
}
Array.prototype.desc=function(){//降序排序
for(var i=0;i<this.length;i++){
for(var j=i+1;j<this.length;j++){
if(this[i]<this[j]){
var temp=this[i];
this[i]=this[j];
this[j]=temp;
}
}
}
return this;
}
//具体例子如下
var testArr=[2,4,5,1,3,6,8,7];
alert(testArr.asc()); //[1,2,3,4,5,6,7,8]
alert(testArr.desc()); //[8,7,6,5,4,3,2,1]

让ie支持getElementsByClassName方法

  if (navigator.appName == 'Microsoft Internet Explorer') {   //让ie支持getElementsByClassName方法
document.getElementsByClassName = function() {
var tTagName = "*";
if (arguments.length > 1) {
tTagName = arguments[1];
}
if (arguments.length > 2) {
var pObj = arguments[2]
} else {
var pObj = document;
}
var objArr = pObj.getElementsByTagName(tTagName);
var tRObj = new Array();
for ( var i = 0; i < objArr.length; i++) {
if (objArr[i].className == arguments[0]) {
tRObj.push(objArr[i]);
}
}
return tRObj;
}
}

常用js代码整理、收集的更多相关文章

  1. 常用JS代码整理

    1: function request(paras) { 2: var url = location.href; 3: var paraString = url.substring(url.index ...

  2. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  3. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  4. 常用JS代码片段

    1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...

  5. 站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合

    站长常用的200个js代码 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect: ...

  6. WEB前端常用JavaScript代码整理

    文章目录 html代码用JS动态加载进页面 JS判断用户访问的是PC还是mobile或者微信浏览器 判断浏览器的简单有效方法 点击某个div区域之外,隐藏该div 如何在手机上禁止浏览器的网页滚动 改 ...

  7. 自动化测试-20.selenium常用JS代码执行

    前言: 在工作中有些控件定位不到,需要操作,使用JS代码去修改或者操作达到selenium不能做的操作. 1.Web界面的滑动 1 #coding:utf-8 2 from selenium impo ...

  8. 常用的JS代码块收集

    /**数组去重一*/ (function (arr) { arr = arr.sort(); for (var i = 0; arr[i]; i++) { if (arr[i] === arr[i + ...

  9. 网页常用Js代码

    1.后退前进 <input type="button" value="后退" onClick="history.go(-1)"> ...

随机推荐

  1. jQuery Lazy Load 图片延迟加载

    基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载. 对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度. 版本: jQuery v1.4.4+ jQuery ...

  2. DEDE数据库修改

    dede数据库配置文件所在路径为:/data/common.inc.php 修改方法: 下面是该dede数据库配置文件的内容: <?php //数据库连接信息 $cfg_dbhost = 'lo ...

  3. Jetty开发(2)

    部署web应用 配置了部署模块的Jetty服务器实例能够在webapps目录下热部署web应用.在webapps目录下标准的War包和jetty的配置文件能够被热部署进服务器需要符合下述规则: exa ...

  4. Hadoop-2.7.1集群环境搭建

    摘自:http://blog.csdn.net/u014039577/article/details/49813531 由于日志数据量越来越大,数据处理的逻辑越来越复杂,同时还涉及到大量日志需要批处理 ...

  5. Pausing Coyote HTTP/1.1 on http-8080

    一般情况下我看到8080便认为是端口占用的问题,其实不是,但是在任务管理器中并没有找到javaw.exe,只有javaservice.exe, 只有重启tomcat了,蓝后就好了......

  6. 来,试试PERL

    试试,看看能否真的替代AWK,SED这些的... #!/usr/bin/perl print "hello, world!\n"; $line = <STDIN>; i ...

  7. FJ省队集训DAY5 T1

    思路:考试的时候打了LCT,自以为能过,没想到只能过80.. 考完一想:lct的做法点数是100W,就算是nlogn也会T. 讲一下lct的做法把:首先如果一条边连接的两个点都在同一个联通块内,那么这 ...

  8. 浅谈单片机、ARM和DSP的异同

    犹记得当年读书的时候,老师说单片机.ARM.DSP有互通之处,都是CPU,但听老师讲都听不懂. 我该如何理解他们,并找出他们的异同呢?我们来看看行内人的看法: ICer,从事ARM CPU的SOC设计 ...

  9. NOI2013 快餐店

    http://uoj.ac/problem/126 总的来说,还是很容易想的,就是有点恶心. 首先,很明显只有一个环. 我们先找出这个环,给各棵树编号id[i],然后各棵树分别以环上的点为根,求出每个 ...

  10. 找出最小的k个数

    •已知数组中的n个正数,找出其中最小的k个数. •例如(4.5.1.6.2.7.3.8),k=4,则最小的4个数是1,2,3,4 •要求: –高效: –分析时空效率 •扩展:能否设计出适合在海量数据中 ...