array
1.判断是否是一个数组对象
function isArray(arg){
return Object.prototype.toString.call(arg) === '[object Array]';
}
2.根据对象的属性排序
function arraySortByAttribute(array, param, sortType){
if(!(isArray(array) && ((sortType === "asc") || (sortType === "desc")))){
alert("不正確的調用格式!");
return array;
}
var arrayLen = array.length;
for(var i = 0; i < arrayLen; i++){
var obj1 = array[i];
var paramValue1 = eval("obj1." + param);
var paramValue2;
for(var j = i + 1; j < arrayLen; j++){
var obj2 = array[j];
paramValue2 = eval("obj2." + param);
switch(sortType){
case "asc":
if(paramValue1 > paramValue2){
paramValue1 = paramValue2;
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
break;
case "desc":
if(paramValue1 < paramValue2){
paramValue1 = paramValue2;
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
break;
default:
alert("程序有誤,請聯繫管理員![arraySortByAttribute]");
break;
}
}
}
return array;
}
Object
1.动态读取object属性的值
var obj={
obj1:{
obj2:{
obj3:2,
'me':'testxxx'
}
}
}
var value1 = eval("obj.obj1.obj2['me']");
var value2 = eval("obj.obj1.obj2.obj3");
//打印输出结果:
value1: testxxx
value2: 2
Jquery
not() is() :not()的区别
jquery第一個插件的框架,未完成
if (window.jQuery)(function ($) {
"use strict";
function dialog(openedBy){
var diag = new Dialog();
var id = '#' + openedBy;
var data = $(id).data("data");
var curVal, zh_CN, zh_TW, pt;
curVal = $(id).prev().val();
diag.Width = 241;
diag.Height = 126;
diag.Title = "d";
diag.InvokeElementId="myTable";
diag.openedBy = openedBy || "";
diag.OKEvent = function(){
zh_CN = $("#zh_CN9wsak").val();
zh_TW = $("#zh_TW9wsak").val();
pt = $("#pt9wsak").val();
switch(language){
case "zh_CN":
$(id).prev().val(zh_CN);
break;
case "zh_TW":
$(id).prev().val(zh_TW);
break;
case "pt":
$(id).prev().val(pt);
break;
default:
break;
}
var obj = {};
obj.zh_CN = zh_CN;
obj.zh_TW = zh_TW;
obj.pt = pt;
$(id).data("data", obj);
diag.close();
};
diag.CancelEvent = function(){
diag.close();
};
diag.show();
if(isNull(data)){
$("#zh_CN9wsak").val("");
$("#zh_TW9wsak").val("");
$("#pt9wsak").val("");
}else{
$("#zh_CN9wsak").val(data.zh_CN);
$("#zh_TW9wsak").val(data.zh_TW);
$("#pt9wsak").val(data.pt);
}
switch(language){
case "zh_CN":
$("#zh_CN9wsak").val(curVal);
break;
case "zh_TW":
$("#zh_TW9wsak").val(curVal);
break;
case "pt":
$("#pt9wsak").val(curVal);
break;
default:
break;
}
}
$.fn.ManyLanguageDialog = function (options) {
if (typeof options == "string") {
options = {language: options};
};
var options = $.extend({} ,
$.fn.ManyLanguageDialog.options ,
options || {}
);
var ManyLanguageDialog = {
e: this,
E: $(this),
clone: $(this).clone()
};
this.each(function(){
$(this).click(function(){
dialog($(this).attr("id"));
});
});
};
$.fn.ManyLanguageDialog.options = {
language: "zh_CN",
};
})(jQuery);
$(function () {
$("input[type=button]._ManyLanguageDialog").ManyLanguageDialog();
});
$(function(){
$("#testBtn1").click(function(){
language = "zh_TW";
});
});
取值:
1.id下input下的name
var array = $('#div2 input[name="myInput"]');
$.each(array, function(){
console.log("data:" + $(this).val());
});
checkbox
1、获取单个checkbox选中项(三种写法)
$("input:checkbox:checked").val()
或者
$("input:[type='checkbox']:checked").val();
或者
$("input:[name='ck']:checked").val();
2、 获取多个checkbox选中项
$('input:checkbox').each(function() {
if ($(this).attr('checked') ==true) {
alert($(this).val());
}
});
3、设置第一个checkbox 为选中值
$('input:checkbox:first').attr("checked",'checked');
或者
$('input:checkbox').eq(0).attr("checked",'true');
4、设置最后一个checkbox为选中值
$('input:radio:last').attr('checked', 'checked');
或者
$('input:radio:last').attr('checked', 'true');
5、根据索引值设置任意一个checkbox为选中值
$('input:checkbox).eq(索引值).attr('checked', 'true');索引值=0,1,2....
或者
$('input:radio').slice(1,2).attr('checked', 'true');
6、选中多个checkbox同时选中第1个和第2个的checkbox
$('input:radio').slice(0,2).attr('checked','true');
7、根据Value值设置checkbox为选中值
$("input:checkbox[value='1']").attr('checked','true');
8、删除Value=1的checkbox
$("input:checkbox[value='1']").remove();
9、删除第几个checkbox
$("input:checkbox").eq(索引值).remove();索引值=0,1,2....
如删除第3个checkbox:
$("input:checkbox").eq(2).remove();
10、遍历checkbox
$('input:checkbox').each(function (index, domEle) {
//写入代码
});
11、全部选中
$('input:checkbox').each(function() {
$(this).attr('checked', true);
});
12、全部取消选择
$('input:checkbox').each(function () {
$(this).attr('checked',false);
});
zDialog自定义按钮的绑定
Dialog.getDialogBtnId = function(dialogId){
var parentId = $('#' + dialogId).parent().attr("id");
var No = parentId.substring(getStrLength("_Container_"), getStrLength(parentId));
var okAndCancelBtnId = {};
okAndCancelBtnId.okBtn = "#_ButtonOK_" + No;
okAndCancelBtnId.cancelBtn = "#_ButtonCancel_" + No;
return okAndCancelBtnId;
}
一个很好用的正则表达式
queryString = function(url, val)
{
var re = new RegExp("" +val+ "=([^&?]*)", "ig");
return ((url.match(re))?(url.match(re)[0].substr(val.length+1)):null);
}
javascript 传递 this
(function(){
function sum(num1, num2){
sum = num1 + num2 + this.kk;
alert("sum:" + sum);//输出的结果是13
return sum;
}
var b = function(){
sum.call({kk: 10}, 1, 2);
}
b();
})();
window下好用的命令
sysdm.cpl
powercfg.cpl
javascript中一种高级的写法,当对象不存在时,给定一个空的对象
a.events || a.events={}
FIT,集成测试框架
http://fit.c2.com
关于JSON
$.parseJSON(str)或JSON.parse(str)
JSON.stringify()
判断是否为数组
function isArrayFn(value){
if (typeof Array.isArray === "function"){
return Array.isArray(value);
}else{
return Object.prototype.toString.call(value) === "[object Array]";
}
}
判断是否是一个函数
(typeof(typeof(g_org_chart)=="object"?g_org_chart.getData:null) == "function") ? g_org_chart.getData() : null ;
在css里写上 word-break:break-all 强制换行
或 overflow:hidden 隐藏超出部分
h2标签在空格和其它符号间会自动换行,加 white-space: nowrap; 就不会自动换行啦
日期处理
var str ='2012-08-12';
str = str.replace(/-/g,"/");
var date = new Date(str );
alert(date);
<script type="text/javascript">
var userAgent = navigator.userAgent,
rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
rFirefox = /(firefox)\/([\w.]+)/,
rOpera = /(opera).+version\/([\w.]+)/,
rChrome = /(chrome)\/([\w.]+)/,
rSafari = /version\/([\w.]+).*(safari)/;
var browser;
var version;
var ua = userAgent.toLowerCase();
function uaMatch(ua) {
var match = rMsie.exec(ua);
if (match != null) {
return { browser : "IE", version : match[2] || "0" };
}
var match = rFirefox.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rOpera.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rChrome.exec(ua);
if (match != null) {
return { browser : match[1] || "", version : match[2] || "0" };
}
var match = rSafari.exec(ua);
if (match != null) {
return { browser : match[2] || "", version : match[1] || "0" };
}
if (match != null) {
return { browser : "", version : "0" };
}
}
var browserMatch = uaMatch(userAgent.toLowerCase());
if (browserMatch.browser) {
browser = browserMatch.browser;
version = browserMatch.version;
}
document.write(browser+version);
</script>
javascript 闭包
$(document).ready(function () {
for (var i = 0; i < 5; i++) {
(function (value) {
$('<div>Print ' + value + '</div>')
.click(function () {
alert(value);
}).insertBefore('#results');
})(i);
}
});
javascript傳遞jquery this
<input class="chkChk" type="checkbox" onclick="holidayChkAll($(this));"/>
<h:outputText value="#{msg['holiday']['holiday']}"/>
function holidayChkAll($This){
alert("this prop:" + $This.prop("checked"));
}
JavaScript停止事件冒泡和取消事件默认行为?
功能:停止事件冒泡
function stopBubble(e) {
// 如果提供了事件对象,则这是一个非IE浏览器
if ( e && e.stopPropagation ) {
// 因此它支持W3C的stopPropagation()方法
e.stopPropagation();
} else {
// 否则,我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
}
}
功能:阻止事件默认行为
function stopDefault( e ) {
// 阻止默认浏览器动作(W3C)
if ( e && e.preventDefault ) {
e.preventDefault();
} else {
// IE中阻止函数器默认动作的方式
window.event.returnValue = false;
}
return false;
}