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" οnclick="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;
}