懂這點js基本就夠擼很久web了

<script>
    $(function (){
        $.ajax({
            url: 'https://test.com:8080/api/v1/users?query_not_auth=100&start=0&num=10',
            dataType: 'jsonp',
            headers:{
                'x-user':'1111',
                'Authorization':'Bearer '+'111111'
            },
            success:function(data){
                if (data != null && data.users != null) {
                    for (var i = 0; i < data.users.length; i++) {
                        $('.search_bar_wrap').after(generateDom(data.users[i]));
                    }
                }
            }
        });
        
        $(document).on('click','.outer.primary', function (){
                    
            $.weui.confirm('確認(rèn)審核通過如贷?',{title:'頭像審核'}, function (){
                
            }, function (){
                
            });
        });
        $(document).on('click','.outer.default', function (){
            $.weui.confirm('確認(rèn)不合格?',{title:'頭像審核'}, function (){

            }, function (){

            });
        });
        $('.search_bar_wrap').searchBar({
            //替換原模板的“取消”
            cancelText:"取消",
            //替換原模板的“搜索”
            searchText:'可搜索昵稱到踏、QQ號碼、學(xué)校',
            //搜索欄獲得焦點時
            onfocus: function (value) {
                console.log('focus!The value is '+value);
            },
            //搜索欄失去焦點時
            onblur:function(value) {
                console.log('blur!The value is '+value);
            },
            //搜索欄在輸入時
            oninput: function(value) {
                console.log('Input!The value is '+ value);
            },
            //搜索欄提交時尚猿,如果沒有submit方法窝稿,則沿用瀏覽器默認(rèn)的提交方式
            onsubmit:function(value){
                console.log('Submit!The value is '+ value);
            },
            //點擊取消按鈕
            oncancel:function(){
                console.log('click cancel');
            },
            //點擊清空按鈕
            onclear:function(){
                console.log('click clear');
            }
        });
    })

function generateDom(user){

    var type1 = `
    <div class="weui_panel weui_panel_access panel">
        <div class="weui_panel_hd apply-id">$time $name <span>申請</span><span>$gender</span></div>
        <div class="weui_panel_bd">
            <div class="weui_media_box weui_media_text">
                [站外圖片上傳中……(1)]
            </div>
        </div>
        <div class="weui_dialog_ft panel-btn">
            <a href="javascript:;" class="weui_btn_dialog outer primary">審核通過</a>
            <a href="javascript:;" class="weui_btn_dialog outer default">不合格</a>
        </div>
    </div>`;

    var type2 = `
    <div class="weui_panel weui_panel_access panel">
        <div class="weui_panel_hd apply-id">$time $name <span>申請</span><span>$gender</span></div>
        <div class="weui_panel_bd">
            <div class="weui_media_box weui_media_text">
                [站外圖片上傳中……(2)]
            </div>
        </div>
        <div class="weui_panel_hd panel-bottom">$state</div>
    </div>`;

    var result = '';
    switch(user.jobauth){
        case 0:
        case 100:
        result = type1.replace('$time',timestamp2date(user.updatetime)).replace('$name',user.name).replace('$gender',user.gender==1?'男':'女').replace('$pic',user.head);
        break;
        case 400:
        case -400:
        result = type2.replace('$time',timestamp2date(user.updatetime)).replace('$name',user.name).replace('$gender',user.gender==1?'男':'女').replace('$pic',user.head).replace('$state',user.jobauth==400?"已審核通過":"已拒絕");
        break;
    }

    return result;
}
function timestamp2date(timestamp){
    var date = new Date();
    date.setTime(timestamp);
    M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    D = date.getDate() + ' ';
    h = date.getHours() + ':';
    m = date.getMinutes() + ' ';
    return M+D+h+m;
}

</script>

很久不擼js了,發(fā)現(xiàn)自己已擼凿掂,依然連代碼都不會寫了伴榔,好在之前的思維都在。

js操作用得最多的庄萎,無非有以下幾點:

  • 1踪少、操作dom節(jié)點,包括糠涛,查找援奢,動態(tài)添加dom
  • 2、ajax發(fā)送網(wǎng)絡(luò)請求忍捡,要知道跨域如何處理集漾。
  • 3、不能在多了砸脊,就以上兩點了具篇。

對于操作dom節(jié)點來說,其最主要的是要去定位你要找的dom節(jié)點凌埂!
然而我們已經(jīng)回不到那個findElementById的那個時代了驱显。
就jquery來說吧,移動端zepto其實也是一樣瞳抓。
# 對應(yīng)于id埃疫,.對應(yīng)于class相信懂的人一看就會,但是其他的挨下,你不經(jīng)常寫熔恢,未必就記得,不記得怎么辦臭笆,參考這里:
http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp 叙淌。
如果你很懶秤掌,那么我也不得不貼一些要點出來:

  • jQuery 元素選擇器 | jQuery 使用 CSS 選擇器來選取 HTML 元素。
$("p") 選取 <p> 元素鹰霍。
$("p.intro") 選取所有 class="intro" 的 <p> 元素闻鉴。
$("p#demo") 選取所有 id="demo" 的 <p> 元素。
  • jQuery 屬性選擇器 | jQuery 使用 XPath 表達(dá)式來選擇帶有給定屬性的元素茂洒。
$("[href]") 選取所有帶有 href 屬性的元素孟岛。
$("[href='#']") 選取所有帶有 href 值等于 "#" 的元素。
$("[href!='#']") 選取所有帶有 href 值不等于 "#" 的元素督勺。
$("[href$='.jpg']") 選取所有 href 值以 ".jpg" 結(jié)尾的元素渠羞。
  • 更多的選擇器實例
$(this) 當(dāng)前 HTML 元素
$("p")  所有 <p> 元素
$("p.intro")    所有 class="intro" 的 <p> 元素
$(".intro") 所有 class="intro" 的元素
$("#intro") id="intro" 的元素
$("ul li:first")    每個 <ul> 的第一個 <li> 元素
$("[href$='.jpg']") 所有帶有以 ".jpg" 結(jié)尾的屬性值的 href 屬性
$("div#intro .head")    id="intro" 的 <div> 元素中的所有 class="head" 的元素
$("a,li,p") 所有的,a智哀,li次询,p元素。

其次想回顧下的主要有兩個方面瓷叫,事件屯吊,以及操作文檔
對于事件摹菠,也不想作太多的回顧盒卸,用得最多的無非就是click,但是有一點需要注意次氨,動態(tài)添加的文本蔽介,也想有click事件怎么辦?

以下兩種糟需,均不會對后續(xù)動態(tài)增加進(jìn)來的元素產(chǎn)

on(type, [selector], function(e){ ... })  ? self
on(type, [selector], [data], function(e){ ... })  ? self 
on({ type: handler, type2: handler2, ... }, [selector])  ? self
on({ type: handler, type2: handler2, ... }, [selector], [data])  ? self
var elem = $('.content')
// observe all clicks inside dom of  class named content:
elem.on('click', function(e){ ... })
// observe clicks inside navigation links in .content
elem.on('click', 'nav a', function(e){ ... })

而以下兩種均會對后續(xù)動態(tài)添加進(jìn)來的a,節(jié)點屉佳,nav 下的 a節(jié)點其作用。

// all clicks inside links in the document
$(document).on('click', 'a', function(e){ ... })
// disable following any navigation link on the page
$(document).on('click', 'nav a', false)

最后洲押,想回顧的自然是網(wǎng)絡(luò)相關(guān)的操作武花,當(dāng)然,本人也很懶杈帐,只想回顧下ajax罷了:

  • type
    (default: “GET”): HTTP request method (“GET”, “POST”, or other)
  • url
    (default: current URL): URL to which the request is made
  • data
    (default: none): data for the request; for GET requests it is appended to query string of the URL. Non-string objects will get serialized with $.param
  • processData
    (default: true): whether to automatically serialize data
    for non-GET requests to string
  • contentType
    (default: “application/x-www-form-urlencoded”): the Content-Type of the data being posted to the server (this can also be set via headers
    ). Pass false
    to skip setting the default value.
  • mimeType
    (default: none): override the MIME type of the response. v1.1+
  • dataType
    (default: none): response type to expect from the server. One of json
    , jsonp
    , script
    , xml
    ,html
    , or text
    .
  • jsonp
    (default: “callback”): the name of the JSONP callback query parameter
  • jsonpCallback
    (default: “jsonp{N}”): the string (or a function that returns) name of the global JSONP callback function. Set this to enable browser caching. v1.1+
  • timeout
    (default: 0
    ): request timeout in milliseconds, 0
    for no timeout
  • headers
    : object of additional HTTP headers for the Ajax request
  • async
    (default: true): set to false
    to issue a synchronous (blocking) request
  • global
    (default: true): trigger global Ajax events on this request
  • context
    (default: window): context to execute callbacks in
  • traditional
    (default: false): activate traditional (shallow) serialization of data
    parameters with $.param
  • cache
    (default: true): whether the browser should be allowed to cache GET responses. Since v1.1.4, the default is false
    for dataType: "script"
    or jsonp
    .
  • xhrFields
    (default: none): an object containing properties to be copied over verbatim to the XMLHttpRequest instance. v1.1+
  • username & password
    (default: none): HTTP Basic authentication credentials. v1.1+
$(document).on('ajaxBeforeSend', function(e, xhr, options){ 
// This gets fired for every Ajax request performed on the page. 
// The xhr object and $.ajax() options are available for editing. 
// Return false to cancel this request.
})

$.ajax({ 
type: 'GET', url: '/projects', 
// data to be added to query string: 
data: { name: 'Zepto.js' }, 
// type of data we are expecting in return: 
dataType: 'json',
 timeout: 300, 
context: $('body'), 
success: function(data){ 
// Supposing this JSON payload was received: 
// {"project": {"id": 42, "html": "<div>..." }} 
// append the HTML to context object. 
this.append(data.project.html) 
}, 
error: function(xhr, type){ alert('Ajax error!') }
})

// post a JSON payload:
$.ajax({ 
type: 'POST', 
url: '/projects', 
// post payload: 
data: JSON.stringify({ name: 'Zepto.js' }), 
contentType: 'application/json'
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末体箕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挑童,更是在濱河造成了極大的恐慌累铅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站叼,死亡現(xiàn)場離奇詭異娃兽,居然都是意外死亡,警方通過查閱死者的電腦和手機尽楔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門投储,熙熙樓的掌柜王于貴愁眉苦臉地迎上來第练,“玉大人,你說我怎么就攤上這事玛荞〗刻停” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵勋眯,是天一觀的道長婴梧。 經(jīng)常有香客問我,道長客蹋,這世上最難降的妖魔是什么塞蹭? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮讶坯,結(jié)果婚禮上浮还,老公的妹妹穿的比我還像新娘。我一直安慰自己闽巩,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布担汤。 她就那樣靜靜地躺著涎跨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崭歧。 梳的紋絲不亂的頭發(fā)上隅很,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音率碾,去河邊找鬼叔营。 笑死,一個胖子當(dāng)著我的面吹牛所宰,可吹牛的內(nèi)容都是我干的绒尊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼仔粥,長吁一口氣:“原來是場噩夢啊……” “哼婴谱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起躯泰,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谭羔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后麦向,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘟裸,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年诵竭,在試婚紗的時候發(fā)現(xiàn)自己被綠了话告。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兼搏。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖超棺,靈堂內(nèi)的尸體忽然破棺而出向族,到底是詐尸還是另有隱情,我是刑警寧澤棠绘,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布件相,位于F島的核電站,受9級特大地震影響氧苍,放射性物質(zhì)發(fā)生泄漏夜矗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一让虐、第九天 我趴在偏房一處隱蔽的房頂上張望紊撕。 院中可真熱鬧,春花似錦赡突、人聲如沸对扶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浪南。三九已至,卻和暖如春漱受,著一層夾襖步出監(jiān)牢的瞬間络凿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工昂羡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留絮记,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓虐先,卻偏偏與公主長得像怨愤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赴穗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理憔四,服務(wù)發(fā)現(xiàn),斷路器般眉,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 通過jQuery了赵,您可以選取(查詢甸赃,query)HTML元素柿汛,并對它們執(zhí)行“操作”(actions)。 jQuer...
    枇杷樹8824閱讀 658評論 0 3
  • 去年國慶,我和朋友淺淺一起去登泰山络断,在山腰上偶遇他的大學(xué)同學(xué)裁替,一個眉清目秀的大小伙,背著藍(lán)色的雙肩背包貌笨,拄著一根登...
    果苒閱讀 510評論 2 6
  • 一直認(rèn)為弱判,孩子的成長不僅僅只在學(xué)校讀書這件事,而出去旅行锥惋,增長見識更加重要昌腰,也是學(xué)習(xí)!暑假因為補課膀跌,時間不湊...
    日光傾城52fhx閱讀 378評論 0 0
  • 2017年7月18日 星期二 晴 要說亮點行程遭商,今天的每一站都是亮點,相信今天也是本次日本游學(xué)夏令營中有...
    Q錢多多閱讀 898評論 0 1