Javascript小技能总结(推荐)


Posted in Javascript onJune 02, 2016

废话不多说,直接上干货。。

具体代码如下所示:

/*
@@截取字符串长度,汉字算2个字符
@@return [string]+'...'
*/
var subString = function(str, len) {
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex, "**").length;
for (var i = 0; i < strLength; i++) {
singleChar = str.charAt(i).toString();
if (singleChar.match(chineseRegex) != null) {
newLength += 2;
} else {
newLength++;
}
if (newLength > len) {
break;
}
newStr += singleChar;
}
if (strLength > len) {
newStr += "...";
}
return newStr;
}
--------------------------------------------------------------------------------
/*
@@对可见元素 进行隐藏
@@:visible 判断是否为课件元素
*/
function close_window(){
var flag=false;
$(".dialog_con").each(function(){
if($(this).is(":visible")){
flag=true;
}
})
if(flag==true){
$(".dialog_con").hide();
$(".dialogbox").hide(); 
}else{ 
window.android.callAndroidFinish();
}
} 
--------------------------------------------------------------------------------
/*
@@对持有不同设备的 设备 引用不同的样式
@@ if判断是否 某种设备
*/
<script type = "text/javascript" >
if (/(iPad|iPod|iOS)/i.test(navigator.userAgent)) { 
setActiveStyleSheet("pad.css"); 
} else if (/(Android)/i.test(navigator.userAgent)) {
setActiveStyleSheet("common.css"); 
}else if (/(iPhone6)/i.test(navigator.userAgent)) {
setActiveStyleSheet("iphone6.css"); 
}
function setActiveStyleSheet(filename){
document.write("<link href="+filename+" rel=stylesheet>");
}
</script>
--------------------------------------------------------------------------------
/*
@@回到顶部动画
@@
*/
$('a.top').click(function (e) {
e.preventDefault();
$(document.body).animate({scrollTop: 0}, 800);
});
--------------------------------------------------------------------------------
/*
@@检查图片是否加载完毕
@@有时你或许要检查图片是否完全加载完毕,才能在脚本中进行后续操作:
@@你也可以通过把 img 标签替换成 ID 或 class,来检查特定图片是否加载完成。
*/
$('img').load(function () {
console.log('image load successful');
});
--------------------------------------------------------------------------------
/*
@@动修复损坏的图片
@@如果你发现自己网站的图片链接挂了,一个一个替换很麻烦。这段简单的代码可以帮上大忙;
@@即使你没有任何损坏的链接,增加这段代码也不会有什么影响。
*/
$('img').on('error', function () {
$(this).prop('src', 'img/broken.png');
});
--------------------------------------------------------------------------------
/*
@@Hover 上的 Class 切换
@@如果用户的鼠标悬停在页面上某个可点击元素时,你想要改变这个元素的视觉表现。可以使用下面这段代码,当用户悬停时,为该元素增加一个 class;当用户鼠标离开后移除这个 class:
*/
$('.btn').hover(function () {
$(this).addClass('hover');
}, function () {
$(this).removeClass('hover');
});
-----------或---------
$('.btn').hover(function () {
$(this).toggleClass('hover');
});
--------------------------------------------------------------------------------
/*
@@禁用 input 字段
@@有时你也许想让表单的提交按钮或其文本输入框变得不可用,直到用户执行了一个特定行为(例如确认 “我已经阅读该条款” 的复选框)。增加 disabled attribute 到你的 input,就可以实现自己想要的效果
*/
$('input[type="submit"]').prop('disabled', true);
$('input[type="submit"]').prop('disabled', false);
--------------------------------------------------------------------------------
/*
@@停止链接加载
@@有时你不想链接跳转到某个页面或重加载该页面,而希望可以做一些其他事情,比如触发其他脚本。下面的代码是禁止默认行为的一个小诀窍
*/
$('a.no-link').click(function (e) {
e.preventDefault();
});
--------------------------------------------------------------------------------
/*
@@淡入淡出/滑动开关
@@淡入淡出与滑动是我们经常使用 jQuery 做成的动画效果。或许你只是想在用户点击某物时展现一个元素,使用 fadeIn 和 slideDown 都很棒。但如果想让该元素在第一次点击时显现,第二次点击时消失,下面的代码可以很好地完成
*/
// Fade
$('.btn').click(function () {
$('.element').fadeToggle('slow');
});
// Toggle
$('.btn').click(function () {
$('.element').slideToggle('slow');
});
--------------------------------------------------------------------------------
/*
@@简单的手风琴效果
@@这是一个快速实现手风琴效果的简单方法
*/
// Close all panels
$('#accordion').find('.content').hide();
// Accordion
$('#accordion').find('.accordion-header').click(function () {
var next = $(this).next();
next.slideToggle('fast');
$('.content').not(next).slideUp('fast');
return false;
});
--------------------------------------------------------------------------------
/*
@@使两个 Div 高度一样
@@有时你也许想让两个 div 拥有同样高度,不管它们里面有什么内容:
*/
$('.div').css('min-height', $('.main-div').height());
该例设置了 min-height,意味着它可以比主要 div 更大,但永远不能更小。但有一个更加灵活的方法是遍历一组元素的设置,然后将高度设为元素中的最高值:
var $columns = $('.column');
var height = 0;
$columns.each(function () {
if ($(this).height() > height) {
height = $(this).height();
}
});
$columns.height(height);
如果你想让所有列都有相同高度:
var $rows = $('.same-height-columns');
$rows.each(function () {
$(this).find('.column').height($(this).height());
}); 
--------------------------------------------------------------------------------
/*
@@在新标签/窗口打开站外链接
@@在一个新标签或者新窗口中打开外置链接,并确保站内链接会在相同的标签或窗口中打开:
*/
$('a[href^="http"]').attr('target', '_blank');
$('a[href^="//"]').attr('target', '_blank');
$('a[href^="' + window.location.origin + '"]').attr('target', '_self');
--------------------------------------------------------------------------------
/*
@@通过文本找到元素
@@通过使用 jQuery 中的 contains() 选择器,你可以找到某个元素中的文本。如果文本不存在,该元素将会隐藏:
*/
var search = $('#search').val();
$('div:not(:contains("' + search + '"))').hide();
--------------------------------------------------------------------------------
/*
@@视觉改变触发
@@当用户焦点在另外一个标签上,或重新回到标签时,触发 JavaScript:
*/
$(document).on('visibilitychange', function (e) {
if (e.target.visibilityState === "visible") {
console.log('Tab is now in view!');
} else if (e.target.visibilityState === "hidden") {
console.log('Tab is now hidden!');
}
});
--------------------------------------------------------------------------------
/*
@@Ajax 调用的错误处理
@@当某次 Ajax 调用返回 404 或 500 错误,就会执行错误处理。但如果没有定义该处理,其他 jQuery 代码或许会停止工作。可以通过下面这段代码定义一个全局 Ajax 错误处理
*/
$(document).ajaxError(function (e, xhr, settings, error) {
console.log(error);
});
--------------------------------------------------------------------------------
/*
@@插件链式调用
@@jQuery 支持链式调用插件,以减缓反复查询 DOM,并创建多个 jQuery 对象。看下面示例代码
*/
$('#elem').show();
$('#elem').html('bla');
$('#elem').otherStuff();
上面这段代码,可以通过链式操作大大改进:
$('#elem').show().html('bla').otherStuff();
还有另外一种方法,把元素缓存在变量中(前缀是 $ ):
var $elem = $('#elem');
$elem.hide();
$elem.html('bla');
$elem.otherStuff();
--------------------------------------------------------------------------------
/*
@@Jq 遍历 全选 全不选 反选
@@
*/
//全选 全不选
$('#checkAll').click(function () {
//判断是否被选中
var bischecked = $('#checkAll').is(':checked');
var fruit = $('input[name="check"]');
bischecked ? fruit.attr('checked', true) : fruit.attr('checked', false);
});
//反选 遍历checkbox 如果当前为选中 就设置为 不选中 反之相同
$("#tabVouchList tr").each(function () {
if ($("td:eq(0) input[name='check']", $(this)).is(':checked')) {
$(this).attr('checked', false);
} else {
$(this).attr('checked', true);
}
});

以上所述是小编给大家提供的js小技巧总结,希望对大家有所帮助!

Javascript 相关文章推荐
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
轻松实现js图片预览功能
Jan 18 Javascript
理解Javascript图片预加载
Feb 23 Javascript
原生JS:Date对象全面解析
Sep 06 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
Dec 11 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
详解javascript中对数据格式化的思考
Jan 23 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
Mar 31 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 Javascript
ZK中使用JS读取客户端txt文件内容问题
Nov 07 Javascript
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
Jquery为DIV添加click事件的简单实例
Jun 02 #Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 #Javascript
深入理解jQuery之事件移除
Jun 02 #Javascript
深入理解JQuery循环绑定事件
Jun 02 #Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 #Javascript
Javascript字符串拼接小技巧(推荐)
Jun 02 #Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 #Javascript
You might like
php字符串截取问题
2006/11/28 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
php类的定义与继承用法实例
2015/07/07 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
Js与下拉列表处理问题解决
2014/02/13 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
Linux下多个Python版本安装教程
2018/08/15 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python列表推导式操作解析
2019/11/26 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
python 如何设置守护进程
2020/10/29 Python
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
更夫岗位责任制
2014/02/11 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
事业单位考察材料范文
2014/12/25 职场文书
校运会新闻稿
2015/07/17 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL