javascript邊角知識
1.組織默認事件
阻止默認事件,h5默認的input type='date'在某些瀏覽器和android設(shè)備上沒有效果,這時要調(diào)用h5+的時間選擇器,但是要組織input默認的click事件,代碼如下:
//選擇時間 $("#end_time").on("click",function(event){ event.preventDefault(); plus.nativeUI.pickDate( function(e){ var d = e.date; // console.log(d.Format('yyyy-MM-dd')); $("#end_time").val(d.Format('yyyy-MM-dd')); },function(e){ console.log( "未選擇日期:"+e.message ); },{title:"請選擇到期時間",minDate:new Date()}); });
2.判斷input type='checkbox' 是否被選中,代碼如下
if (!$("#shopregister #checkaggree").is(":checked")) { alert("請同意注冊協(xié)議"); return false; }
3.獲取多個checkbox中被選中的那個的值,代碼如下
<input name='is_refund' id='refund_1' type='radio' value='1' />
<input name='is_refund' id='refund_0' checked='checked' type='radio' value='0' />
$("#shopregister input[name='is_refund']:checked").val();
4.設(shè)置checkbox選中
$("[name='checkbox']:even").attr("checked",'true'); //如果這貨不管用請用prop
5.獲取多張圖片中title屬性的值
user.id_pic1 = $($("#shopregister .id_pic")[0]).attr("title");
user.id_pic2 = $($("#shopregister .id_pic")[1]).attr("title");
user.id_pic3 = $($("#shopregister .id_pic")[2]).attr("title");
6.ajax提交過程中顯示進度圖片
$.ajax({ type: 'POST', url: configManager.RequstUrl + "/api/user/createstore", data: postdata, beforeSend:function(){ $("#waitingupload").removeClass("heisebghid").addClass("heisebg");} }).done(function (data) { $("#waitingupload").removeClass("heisebg").addClass("heisebghid"); if ("success" == data.state) { //服務(wù)端成功 } else { //服務(wù)端失敗 } }).fail(function () { //ajax請求失敗 });
7.選擇器first和first-child的區(qū)別
<table>
<tr><td>Row 1</td></tr>
<tr><td>Row 2</td></tr>
<tr><td>Row 3</td></tr>
</table>
<script>$("td:first-child或者first").css("color", "red");</script>
first:Row1為紅色
first-child:三個Row都為紅色
分別表示:第一個td 和 每個td的第一個元素
8.jquery判斷元素是否隱藏
$("#givegoodsback").is(":hidden");可以,$("#givegoodsback").is(":visible");不行的
8.判斷變量類型
var gettype=Object.prototype.toString
gettype.call('aaaa') 輸出 [object String]
gettype.call(2222) 輸出 [object Number]
gettype.call(true) 輸出 [object Boolean]
gettype.call(undefined) 輸出 [object Undefined]
gettype.call(null) 輸出 [object Null]
gettype.call({}) 輸出 [object Object]
gettype.call([]) 輸出 [object Array]
gettype.call(function(){}) 輸出 [object Function]
看到這里,剛才的問題我們解決了。
其實js 里面還有好多類型判斷 [object HTMLDivElement] div 對象 , [object HTMLBodyElement] body 對象 ,[object Document](IE)或者 [object HTMLDocument](firefox,google) ......各種dom節(jié)點的判斷,這些東西在我們寫插件的時候都會用到。
可以封裝的方法如下 :
var gettype=Object.prototype.toString var utility={ isObj:function(o){ return gettype.call(o)=="[object Object]"; }, isArray:function(o){ return gettype.call(o)=="[object Array]"; }, isNULL:function(o){ return gettype.call(o)=="[object Null]"; }, isDocument:function(){ return gettype.call(o)=="[object Document]"|| [object HTMLDocument]; } ........ }
9.使用is判斷是否為id=XXX的元素
if ( $(obj).parent().is('#fancybox-content') === true) { busy = false; return; }
10.一次添加多個元素
outer.append( content = $('<div id="fancybox-content"></div>'), close = $('<a id="fancybox-close"></a>'), title = $('<div id="fancybox-title"></div>'), nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'), nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>') );
11.添加cookie并設(shè)置失效時間
var expires = new Date(new Date().getTime() + (1000 * 60 * 60 * 24 * 60)); //60天 Ext.util.Cookies.set('autoLogin', autoLogin.getValue(), expires); Ext.util.Cookies.set('loginUserId', userId, expires); Ext.util.Cookies.set('loginPassword', password, expires);
作者:Tyler Ning
出處:http://www.rzrgm.cn/tylerdonet/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,請微信聯(lián)系冬天里的一把火
浙公網(wǎng)安備 33010602011771號