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="密码"
- required>
- </div>
- <div>
- <input type="button" id="submit" onclick="getForm22(this)"
- value="登录">
- </div>
- </div>
- </div>
- </form>
- </div>
- </body>
- </html>
注意:参数是普通的html元素,返回的是jQuery对象
(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("新密码不能为空");
- break;
- case 21:
- alert("请先登录");
- $.ui.goBack();
- break;
- case 22:
- alert("两次密码不能相同");
- break;
- case 24:
- alert("密码已过期,请点击右上角的刷新按钮");
- break;
- }
- }});
(5)创建数组
var html = [];
(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.webkit = true;
- jQuery.browser.name = "Safari";
- jQuery.browser.fullVersion = nAgt.substring(verOffset + 7);
- if ((verOffset = nAgt.indexOf("Version")) != -1)
- jQuery.browser.fullVersion = nAgt.substring(verOffset + 8);
- }
- // 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.fullVersion = jQuery.browser.fullVersion.substring(0, ix);
- 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+": "+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;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('firefox<br>');
- }
- }
- else
- if (browser.chrome) {
- version = browser.chrome;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('chrome<br>');
- }
- }
- else
- if (browser.opera) {
- version = browser.opera;
- if(write22 && write22!=false && write22!='false'){
- document.writeln('opera<br>');
- }
- }
- else
- if (browser.safari) {
- version = browser.safari;
- if(write22 && write22!=false && write22!='false'){
- 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\")");
- if(brow&&brow.chrome){//因为在chrome 中有时背景图片gif不显示
- $("#loading_gif").css("display","block");
- $("#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;
- }
- }else{
- return "";
- }
- } else {
- return "";
- }
- };
使用场景:
html代码:
- <input id="username" type="text" name="username" placeholder="用户名"
- required>
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;
- }else{
- return false;
- }
- }
(10)判断以指定字符串开头或结尾
- com.whuang.hsj.startWith=function(str,regex){
- if(regex==undefined||str==undefined){
- return false;
- }
- return str.indexOf(regex)==0;
- };
- com.whuang.hsj.endWith=function(str,regex){
- return str.lastIndexOf(regex)==str.length-regex.length;
- };
时间: 2024-11-07 20:18:58