常用js代码整理、收集
个人整理了一下个人常用到的一些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代码整理、收集的更多相关文章
- 常用JS代码整理
1: function request(paras) { 2: var url = location.href; 3: var paraString = url.substring(url.index ...
- 常用js方法整理common.js
项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...
- 项目中常用js方法整理common.js
抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...
- 常用JS代码片段
1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...
- 站长常用的200个js代码 站长常用js代码大全 站长常用js代码集合
站长常用的200个js代码 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect: ...
- WEB前端常用JavaScript代码整理
文章目录 html代码用JS动态加载进页面 JS判断用户访问的是PC还是mobile或者微信浏览器 判断浏览器的简单有效方法 点击某个div区域之外,隐藏该div 如何在手机上禁止浏览器的网页滚动 改 ...
- 自动化测试-20.selenium常用JS代码执行
前言: 在工作中有些控件定位不到,需要操作,使用JS代码去修改或者操作达到selenium不能做的操作. 1.Web界面的滑动 1 #coding:utf-8 2 from selenium impo ...
- 常用的JS代码块收集
/**数组去重一*/ (function (arr) { arr = arr.sort(); for (var i = 0; arr[i]; i++) { if (arr[i] === arr[i + ...
- 网页常用Js代码
1.后退前进 <input type="button" value="后退" onClick="history.go(-1)"> ...
随机推荐
- HTML&CSS基础学习笔记1.21-语义化标签
语义化标签 “语义化”指的是机器在需要更少的人类干预的情况下能够研究和收集信息,让网页能够被机器理解,最终让人类受益. HTML 标签语义化是让大家直观的认识标签和属性的用途和作用,很明显<hx ...
- “声控”APP
“声控”APP 编者:本文为携程机票研发部技术专家祁一鸣在携程技术微分享中的分享内容,关注携程技术中心微信公号ctriptech,获知更多一手干货. [携程技术微分享]是携程技术中心推出的线上公开分享 ...
- 让C程序更高效的10种方法
http://blog.jobbole.com/1198/ 代码之美,不仅在于为一个给定问题找到解决方案,而且还在代码的简单性.有效性.紧凑性和效率(内存).代码设计比实际执行更难 .因此,每一个程序 ...
- mysql安装图解 mysql图文安装教程(详细说明)-[转]
很多朋友刚开始接触mysql数据库服务器,下面是网友整理的一篇mysql的安装教程,步骤明细也有详细的说明. MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版 ...
- 获取android源码时repo的错误
今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/manifest.git出现问题:问题一:Tr ...
- iOS设备后台播放音乐方法
iOS设备后台播放音乐方法 1 在设置Capabliites中打开Background Modes,选择Audio And AirPlay 2 在控制viewDidLoad中添加下面代码 AVAudi ...
- PowerShell 字符串操作符
字符串操作符 格式化操作符 –F 在PowerShell文本操作符中非常重要,经常被用来增强数字类型和日期类型的可读性: "{0} diskettes per CD" -f (72 ...
- 自定义xcode文件模板
下面两个路径都可以用于放模板文件 1. /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Template ...
- VC青睐服装订制网站 市场规模超3000亿美元 - 找VC - 创业邦
VC青睐服装订制网站 市场规模超3000亿美元 - 找VC - 创业邦 VC青睐服装订制网站 市场规模超3000亿美元
- Address Book(地址薄)
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.Scene?> ...