个人整理了一下个人常用到的一些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. 开源 一行代码实现多形式多动画的推送小红点WZLBadge(iOS)-备用

    更新日志 V1.2 2015.09.25 1.UITabBarItem badge is supproted; 2.Enable change badge properties when badge ...

  2. 宏汇编软件MASM51的使用

    单片机开发可以用手工汇编和机器汇编两种方法.采用手工汇编就是先编写出汇编程序,然后对照单片机汇编表手工将汇编程序翻译成机器码,最后将机器码一个一个地送入开发仿真器的RAM中去进行调试. 由于采用手工汇 ...

  3. dedecms 在php7.0无法安装

    dedecms 需要mysql扩展的支持!而php7.0已废弃mysql扩展.所以我讲7.0改回了5.6然后就可以顺利安装了. 总结了一个经验:没有绝对实力,不要尝试新东西

  4. xcode忽略警告

    1.对整个文件使用 你的工程 -> 你的target -> Build Phases -> Compile Sources -> 搜索要忽略警告的文件名,在 Compiler ...

  5. c语言结构体4之结构体引用

    struct mystruct{ char str[23];}; 1结构体变量不能整体引用 struct data m: printf("%s",m);//m是结构体变量 2 st ...

  6. 第25讲 UI组件之 AlertDialog 的各种实现

    第25讲 UI组件之AlertDialog 的各种实现 对话框(Dialog)是程序运行中的弹出窗口,例如当用户要删除一个联系方式时,会弹出一个对话框. Android提供了多种对话框:警告对话框(A ...

  7. testng xml 示例

    TestNG的DTD检查文件:http://testng.org/testng-1.0.dtd.php 更多testng配置及说明,请移步http://testdoc.org/docmaster?pi ...

  8. WPF与输入法冲突研究之二:汉字输入法会导致WPF程序的崩溃!

    如果是输入非汉字的数据信息,可以添加一下内容: xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCo ...

  9. 正则表达式获取URL参数

    使用到的正则表达式: [^\?&]?参数名=[^&]+ document.location.getURLPara = function (name) { var reg = new R ...

  10. Zedboard甲诊opencv图像处理(四)

    接着上一篇博客,继续改进,现在为了是图像处理结果更加稳定,我实在没有办法了,只好先提取手指,再提取指甲. 把手指从背景里面提出来还是挺简单的,可惜的是我研究这么半天还是这结果,好沮丧. 怎么办呢,时间 ...