介绍

主要记录一些平时积累或者常用方法或者小技巧的集合。以便在以后用到还要重复写或者忘记。

还有就是如果遇到好的方法封装值得收藏进行收藏。这里主要是记录一些包含JavaScript的一些积累。没有什么样式和页面的操作。

可能会存在一些你认为不是很好或者用不到的。如果你有更好的请指正。交流分享,方便大家,一起进步。

1.根据文件名切换附件显示图片

        /**
*@method
*@param {name} 文件全称
*@returns 返回该文件类型对应的图片地址
*/
VerTypeToImage: function (name) {
var indexBegin = name.lastIndexOf(".");
var indexEnd = name.length;
var type = name.substring(indexBegin + 1, indexEnd);
switch (type) {
case "jpg":
return "/Content/images/area/NewDocument_Areas/icon_img.png";
case "word":
return "/Content/images/area/NewDocument_Areas/icon_word.png";
case "excel":
return "/Content/images/area/NewDocument_Areas/icon_excel.png";
case "ppt":
return "/Content/images/area/NewDocument_Areas/icon_ppt.png";
case "pdf":
return "/Content/images/area/NewDocument_Areas/icon_pdf.png";
case "zip":
return "/Content/images/area/NewDocument_Areas/icon_zip.png";
default:
return "/Content/images/area/NewDocument_Areas/icon_other.png";
}
}

2.根据文件类型实现上传文件限制特定类型

        /**
*@method
*@param {name} 文件全称
*@returns 返回该文件类型是否存在
*@desc turn:代表存在运行 false:代表不存在
*/
VerType: function (name) {
//运行通过的文件类型集合
var allowtype = ["doc", "docx", "xls", "xls", , "pdf", "ppt", "pptx", "zip", "jpg", "png", "jpeg", "bmp", "gif"]
var thisfiletype = name.substring(name.lastIndexOf(".") + 1, name.length).toLowerCase();
if (allowtype.inArray(thisfiletype) == -1) {
console.log("不存在返回")
return false;
} else {
console.log("存在返回")
return true;
}
}

3.数组扩展判断是否存在某个指定值

                            Array.prototype.inArray = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
};

4.数组扩展实现删除指定值

                                //扩展数组删除
Array.prototype.indexOf = function (val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return -1;
}; Array.prototype.remove = function (val) {
var index = this.indexOf(val[0]);
if (index > -1) {
this.splice(index, 1);
}
};

5.数组扩展不允许添加重复元素

//重写Array中的pushDistinct方法,向数组中添加值不重复的元素
Array.prototype.pushDistinct = function (val) {
var index = this.indexOf(val);
if (index == -1) {
this.push(val);
}
};

6.冒泡排序

      /**
*@method
*@param {data} 要排序数组
*@returns 返回排序后的数组
*/
bubble: function(data) {
for (i = 0; i < data.length - 1; i++) {
for (j = i + 1; j < data.length; j++) {
var nowValue = data[i];
if (parseInt(nowValue) > parseInt(data[j])) {
var nextValue = data[j];
data[j] = nowValue;
data[i] = nextValue;
}
}
}
return data;
}

7.递归

      /**
*@method
*@param {n} 一个数组
*@returns 返回从1-n的和
*/
function sum(n) {
return sum(n - 1) + n;
}

8.跨域请求jsonp

             /**
*@method 跨域请求jsonp
*@param {url} 请求地址
*@param {data} 请求参数
*@param {func} 回调函数
* */
function(url, data, func) {
$.ajax({
url: url,
dataType: "jsonp",
jsonp: "callback", //需要和服务端回掉方法对应
cache: false,
data: data,
success: function(data) {
func(data);
}
});
}

9.原生js请求

             /**
*@method 原生js请求
*@param {type} 请求类型 get post
*@param {url} 请求地址
*@param {data} 请求数据
*@param {funSusses} 成功回调
*@param {funFailure} 失败回调
*@returns 返回从1-n的和
*/
function(type, url, data, funSusses, funFailure) {
//1.创建xhr对象
var xhr = null;
if(window.XMLHttpRequest) {
//标准浏览器
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP")
};
//2.准备发送前的参数
xhr.open(type, url, true);
//3.执行发送动作
if(type == "get") {
xhr.send(null);
} else if(type == "post") {
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
};
//第四步:指定回调函数
xhr.onreadystatechange = function() {
if(this.readyState == 4) {
if(this.status == 200) {
funSusses(xhr.responseText)
} else {
funFailure(xhr.responseText)
}
}
}; }

10.浏览器版本判断

这个为从网上收藏版本,复制的有点多

<script language="JavaScript">
<!--
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>){
return "Gecko";
} }
alert("您的浏览器类型为:"+getOs());
-->
</script>

【JavaScript】封装实用方法【持续积累】的更多相关文章

  1. javascript代码实用方法实现

    javascript代码实用方法实现   针对现在大家平时开发中,都会写一些重复性的js处理代码,今天总结了几个比较常用的方法实现.获取get请求参数.去字符串空格.   1.获取get请求中的参数  ...

  2. 拾遗----javascript一些实用方法

    1. join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. var ids = [];                 for(var i = 0 ...

  3. JavaScript封装一个函数效果类似内置方法concat()

    JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...

  4. JavaScript常见调试方法

    编辑导语:javascript调试方法,常见使用alert和console来定位出错和输出的结果是否是想要的,在chrome中,还可以使用断点来看运行的情况等,本文介绍了比较全面的调试方法,你知道co ...

  5. JavaScript 字符串实用常操纪要

    JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...

  6. 使用jQuery封装实用函数

    一.引言 项目开发中,前端会有一个辅助工具类的js文件,比如cookie的操作,团队成员自己封装的方法.大多数时候,我们开发人员自己都是写一个全局函数,不考虑后期维护人员也会写相同的代码,然后造成代码 ...

  7. JavaScript封装

    js封装就是把使用方式简单化,内部逻辑和使用解耦.使用人员知道参数和返回值就可以了,其他不用使用人员设置. 封装就是将属性,方法,字段等封装成类. JavaScript封装方法 1,函数方式 func ...

  8. javaScript封装的各种写法

    在javascript的世界里,写法是个神奇的现象,真是百家齐开放啊!每次看到老外写的js组件,思想和写法都怪异,就没看到一个js结构基本相同的代码出来.今天,我就来谈谈js写法,我在开发过程中,也写 ...

  9. 像jQuery那样,采用链式方法,封装一个方法:CSS()

    主要思路就是:返回this对象,将所获取的操作元素放入一个数组中.在原型中添加拓展方法 <html> <head> <title></title> &l ...

随机推荐

  1. cadence PCB板级设计

    总结PCB板框设计,定位孔的放置,以及布线区域和元件放置区域的放置,最重要的是层叠结构的设计.

  2. vs2017 调试时 浏览器关闭不想中断调试

    解决方案 工具—>选项—>项目和解决方案—>web项目-->去点“浏览器窗口关闭时停止调试”前面的勾去掉>>>

  3. [Swift]LeetCode30. 与所有单词相关联的字串 | Substring with Concatenation of All Words

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  4. [Swift]LeetCode90. 子集 II | Subsets II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets (the ...

  5. [Swift]LeetCode265.粉刷房子 II $ Paint House II

    There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...

  6. [Swift]LeetCode739. 每日温度 | Daily Temperatures

    Given a list of daily temperatures T, return a list such that, for each day in the input, tells you ...

  7. 为什么说Java中只有值传递

    本文转载自公众号 Hollis 对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文 ...

  8. Java9发布回顾Java 8的十大新特性

    java9已经在北京时间9月22日正式发布,开发者可以在oracle jdk官网上下载到最新的jdk9. 今天,我们先来一起复习一下2014年发布的Java 8的十大新特性.先来喝杯java~~~ 按 ...

  9. Session知识点

    知识点概要    - Session    - CSRF    - Model操作    - Form验证(ModelForm)    - 中间件    - 缓存    - 信号 内容详细: 1. S ...

  10. log4cplus使用(三)-日志重定向

    本文讲述的是log4cplus日志输出到qt widget,封装了serverSocket.     log4cplus支持用户自定义输出设备,只需要继承自Appender,或者Appender子类, ...