几个有用的JavaScript/jQuery代码片段(转)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个有用的JavaScript/jQuery代码片段(转)相关的知识,希望对你有一定的参考价值。
1. 检查数据是否包含在Array中
//jQuery实现
jQuery.inArray("value", arr);
// 使用方法: if( jQuery.inArray("value", arr) != -1 ) { true };
原生javascript实现:
Array.prototype.inArray=function(value){
for(var i=0;i<this.length;i++) {
if(this[i]==value) {
return true;
}
}
return false;
}
用法:
var myArray=[‘aa‘,‘bb‘,‘cc‘];
myArray.inArray(‘cc‘);
2. 使文本不能够被选中
(function($) {
$.fn.unselectable = function() {
this.each(function() {
this.onselectstart = function() { return false; };
this.unselectable = ‘on‘;
this.style.MozUserSelect = ‘none‘;
});
};
})(jQuery);
使用方法 $(dom).unselectable();
3. 检查数据是否含有小数
Number.prototype.hasDec = function() {return !!(this % 1);}
//使用方法
//var num = 34.34; num.hasDec(); > true
4. 检查URL是否有效
function urlExists(testUrl) {
var http = jQuery.ajax({
type:"HEAD",
url: testUrl,
async: false
})
return http.status!=404;
}
5. 复制一个Array
Array.prototype.duplicate=function(array) {
return this.concat(this);
}
6. trim
//jQuery
jQuery.trim(‘ string ‘); //return ‘string‘
//javascript
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
return this.replace(/^\s+/g,"");
}
String.prototype.rtrim = function() {
return this.replace(/\s+$/g,"");
}
使用:
var test = " Test ";
var test3 = test.trim(); // returns "Test"
7. getElementByClassName
Object.prototype.getElementsByClass = function (searchClass, tag) {
var returnArray = [];
tag = tag || ‘*‘;
var els = this.getElementsByTagName(tag);
var pattern = new RegExp(‘(^|\\s)‘+searchClass+‘(\\s|$)‘);
for (var i = 0; i < els.length; i++) {
if ( pattern.test(els[i].className) ) {
returnArray.push(els[i]);
}
}
return returnArray;
}
//返回class为"className" 的所有dom元素
els=document.getElementsByClass(‘className‘);
//返回class为‘className’的所有p的dom元素
els=document.getElementsByClass(‘className‘,‘p‘);
8. 添加/移除/切换 dom元素的class
var cssClasses = {
addClass: function(ele,cls) {
if (!Utils.hasClass(ele,cls)) ele.className += " "+cls;
},
removeClass: function(ele,cls) {
if (Utils.hasClass(ele,cls)) {
var reg = new RegExp(‘(\\s|^)‘+cls+‘(\\s|$)‘);
ele.className=ele.className.replace(reg,‘ ‘);
}
},
toggleClass: function(ele,cls) {
if (this.hasClass(ele,cls)) {
this.removeClass(ele,cls);
}
else {
this.addClass(ele,cls);
}
}
}
使用方法:
var element = document.getElementById(‘somehtmlel‘);
cssClasses.addClass(element, ‘cssClassName‘); //添加css class
cssClasses.removeClass(element, ‘cssClassName‘); //移除css class
cssClasses.toggleClass(element, ‘cssClassName‘); //切换css class
cssClasses.hasClass(element, ‘cssClassName‘); //返回true or false;
9. 检查元素是否含有滚动条
(function($) {
$.fn.hasScrollBar = function() {
return this.get(0).scrollHeight > this.height();
}
})(jQuery);
调用方法$(”).hasScrollBar();返回boolean型
以上是关于几个有用的JavaScript/jQuery代码片段(转)的主要内容,如果未能解决你的问题,请参考以下文章
Javascript/Jquery 注释在 IE 中导致错误