ajs 的一些小技巧
(1)傳入一個表單控件(如input輸入框,按鈕)擷取所在的form

var getform= function (formelement) {
var $that=$(formelement).parent();
var max=6;//limit the depth
var fieldsetelement=null;//form element
var tagname=null;//html tag name
while((fieldsetelement=$that.get(0))&&fieldsetelement.tagname!==undefined&&(tagname=fieldsetelement.tagname.tolowercase())!=='form'&&max>0){
if(tagname==='fieldset'){//html5 new tag
$that=$(fieldsetelement.form);
break;
}
$that=$that.parent();
max--;
}
console.log(max);
return $that;
};
完整示例:

<!doctype html>
<html>
<head lang="en">
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<title></title>
<script type="text/javascript">
var getform = function (formelement) {
var $that = $(formelement).parent();
var max = 6;//limit the depth
var fieldsetelement = null;//form element
var tagname = null;//html tag name
while ((fieldsetelement = $that.get(0)) && fieldsetelement.tagname !== undefined && (tagname = fieldsetelement.tagname.tolowercase()) !== 'form' && max > 0) {
if (tagname === 'fieldset') {//html5 new tag
$that = $(fieldsetelement.form);
break;
}
$that = $that.parent();
max--;
}
console.log(max);
return $that;
};
var getform22 = function (self) {
$form = getform(self);
console.log($form);
}
</script>
</head>
<body>
<div id="login-content">
<form id="myform">
<div>
<div>
<div class="inputs">
<input id="username" type="text" name="username" placeholder="使用者名"
required>
<input id="password" type="password" name="password" placeholder="密碼"
</div>
<div>
<input type="button" id="submit" onclick="getform22(this)"
value="登入">
</div>
</div>
</form>
</div>
</body>
</html>
(2)js把毫秒轉化為時間

var releasedate=new date(number(obj.releasetime)*1000).format('mm-dd hh:mm');//把毫秒數轉化為日期
注意:上述代碼中obj.releasetime的機關是秒(不是毫秒)
(3)把數組拼接為字元串:使用join

var html = [];
if(data.length2>0){
var recordlist=data.recordlist;
for(var i=0;i<data.length2;i++){
html.push(getbbscommentlistitem(recordlist[i]));
$livespanel_ul.append(html.join(''));
}
(4)web app中使用jsonp跨域請求時如何帶上sessionid
跨域通路
在url位址最後面加上;jsessionid=<你的實際sessionid>
執行個體

var modi_url='http://'+server_url+'/user/mod_pass?callback=?&password='+old_password_val+"&password2="+new_password_val+";jsessionid="+window.sessionid;
console.log&&console.log(modi_url);
$.jsonp({url:modi_url,success:function(data){
var result=data.result;
hidemask2();
switch (result)
{
case 1:
user.password=new_password_val;
alert("修改成功");
$.ui.goback();
break;
case 23:
alert("新密碼不能為空");
case 21:
alert("請先登入");
case 22:
alert("兩次密碼不能相同");
case 24:
alert("密碼已過期,請點選右上角的重新整理按鈕");
}});
(5)建立數組
(6)判斷對象是否包含指定屬性
'length' in objarr 可以判斷objarr 是否包含length屬性
示例:

if (!('length' in objarr)) {// just only single component (not array).
objarr.style.display = "block";
}else{
for ( var i = 0; i < objarr.length; i++) {
var objone = objarr[i];
objone.style.display = "block";
}
(7)擷取浏覽器類型
jquery-1.11.1.js中沒有了擷取浏覽器的方法,可以添加如下代碼

/***
* get browser type
* @param jquery
*/
var checkbrowser = function (jquery) {
if (jquery.browser) return;
jquery.browser = {};
jquery.browser.mozilla = false;
jquery.browser.webkit = false;
jquery.browser.opera = false;
jquery.browser.msie = false;
var nagt = navigator.useragent;
jquery.browser.name = navigator.appname;
jquery.browser.fullversion = '' + parsefloat(navigator.appversion);
jquery.browser.majorversion = parseint(navigator.appversion, 10);
var nameoffset, veroffset, ix;
// in opera, the true version is after "opera" or after "version"
if ((veroffset = nagt.indexof("opera")) != -1) {
jquery.browser.opera = true;
jquery.browser.name = "opera";
jquery.browser.fullversion = nagt.substring(veroffset + 6);
if ((veroffset = nagt.indexof("version")) != -1)
jquery.browser.fullversion = nagt.substring(veroffset + 8);
// in msie, the true version is after "msie" in useragent
else if ((veroffset = nagt.indexof("msie")) != -1) {
jquery.browser.msie = true;
jquery.browser.name = "microsoft internet explorer";
jquery.browser.fullversion = nagt.substring(veroffset + 5);
// in chrome, the true version is after "chrome"
else if ((veroffset = nagt.indexof("chrome")) != -1) {
jquery.browser.webkit = true;
jquery.browser.name = "chrome";
jquery.browser.fullversion = nagt.substring(veroffset + 7);
// in safari, the true version is after "safari" or after "version"
else if ((veroffset = nagt.indexof("safari")) != -1) {
jquery.browser.name = "safari";
// in firefox, the true version is after "firefox"
else if ((veroffset = nagt.indexof("firefox")) != -1) {
jquery.browser.mozilla = true;
jquery.browser.name = "firefox";
jquery.browser.fullversion = nagt.substring(veroffset + 8);
// in most other browsers, "name/version" is at the end of useragent
else if ((nameoffset = nagt.lastindexof(' ') + 1) <
(veroffset = nagt.lastindexof('/'))) {
jquery.browser.name = nagt.substring(nameoffset, veroffset);
jquery.browser.fullversion = nagt.substring(veroffset + 1);
if (jquery.browser.name.tolowercase() == jquery.browser.name.touppercase()) {
jquery.browser.name = navigator.appname;
// trim the fullversion string at semicolon/space if present
if ((ix = jquery.browser.fullversion.indexof(";")) != -1)
jquery.browser.fullversion = jquery.browser.fullversion.substring(0, ix);
if ((ix = jquery.browser.fullversion.indexof(" ")) != -1)
jquery.browser.majorversion = parseint('' + jquery.browser.fullversion, 10);
if (isnan(jquery.browser.majorversion)) {
jquery.browser.fullversion = '' + parsefloat(navigator.appversion);
jquery.browser.majorversion = parseint(navigator.appversion, 10);
jquery.browser.version = jquery.browser.majorversion;
};
checkbrowser(jquery);
以上用于jquery.
下面的不是用于jquery的 :

* get browser type and browser version and language
when page open,the function will be executed automaticly
* @param write22
* @returns {{systemlanguage,userlanguage,ver}}
com.whuang.hsj.getbrowserversion=(function(write22){
var browser = {};
// console.dir(navigator);
var useragent = navigator.useragent.tolowercase();
/*for(osvid in navigator){
var value222=navigator[osvid];
document.writeln(osvid+":&nbsp;"+value222+'<br>');
}*/
var lang22=navigator.language;
// document.writeln(useragent+'<br>');
// document.writeln(navigator.appcodename+'<br>');
var s;
(s = useragent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = useragent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = useragent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] :
(s = useragent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = useragent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;
var version = "";
if (browser.ie) {
version = browser.ie;
if(write22 && write22!=false && write22!='false'){
document.writeln('ie<br>');
if(!browser.lang ||browser.lang==undefined){
lang22=navigator.browserlanguage;
browser.systemlanguage=navigator.systemlanguage ;
browser.userlanguage=navigator.userlanguage;
else
if (browser.firefox) {
version = browser.firefox;
browser.mozilla=browser.firefox;
document.writeln('firefox<br>');
if (browser.chrome) {
version = browser.chrome;
document.writeln('chrome<br>');
if (browser.opera) {
version = browser.opera;
document.writeln('opera<br>');
if (browser.safari) {
version = browser.safari;
document.writeln('safari<br>');
else {
version = 'unknown browser';
browser.ver=version;
if(lang22 && lang22!=undefined)
{
browser.lang=lang22.tolowercase();
return browser;
})();
使用方法:

var brow ;
if(com.whuang.hsj.getbrowserversion){
brow =com.whuang.hsj.getbrowserversion;
if(type22=='mid'||type22=='middle'){
$("#loadpanel").css("background-image", "url(\"../static/images/loading/loading_middle.gif\")");
if(brow&&brow.chrome){//因為在chrome 中有時背景圖檔gif不顯示
$("#loading_gif").css("display","block");
$("#loading_gif").attr("src", "../static/images/loading/loading_middle.gif");
}else if(type22=='small'||type22=='little'){
$("#loadpanel").css("background-image", "url(\"../static/images/loading/loading_small.gif\")");
$("#loading_gif").attr("src", "../static/images/loading/loading_small.gif");
}else{
$("#loadpanel").css("background-image", "url(\""+type22+"\")");
(8)通過name屬性擷取單個元素

* if is radio ,please use com.whuang.hsj.$$arr
* @param name22
* @returns
com.whuang.hsj.$$one = function(name22) {
if (com.whuang.hsj.ishasvalue(name22)) {
var names222=document.getelementsbyname(name22);
//alert("names222:"+names222);
//alert("typeof:"+(typeof names222 ));
var classname=object.prototype.tostring.call(names222);
var boolean_isarray;
var iehtmlcollection='[object htmlcollection]';
if(isietest)//if browser is ie
boolean_isarray=( classname=== '[object object]') ||(classname=== iehtmlcollection) ||names222 instanceof array ;
}else
boolean_isarray=( classname=== '[object array]') ||(classname=== '[object nodelist]' )||(classname==iehtmlcollection)||names222 instanceof array||names222 instanceof nodelist;
if(names222){
if(boolean_isarray){
return names222[0];
}else{
return names222;
return "";
} else {
return "";
使用場景:
html代碼:

<input id="username" type="text" name="username" placeholder="使用者名"
js代碼

var username=com.whuang.hsj.$$one("username");
alert(username.value);
(9)字元串source 中是否包含key2

com.whuang.hsj.contains=function(source,key2){
var isdownload=(source.indexof(key2)>-1);
if(isdownload){
return true;
return false;
}
(10)判斷以指定字元串開頭或結尾

com.whuang.hsj.startwith=function(str,regex){
if(regex==undefined||str==undefined){
return str.indexof(regex)==0;
com.whuang.hsj.endwith=function(str,regex){
return str.lastindexof(regex)==str.length-regex.length;