html中通過(guò)JS獲取JSON數(shù)據(jù)并加載的方法
在寫(xiě)內(nèi)容邏輯重復(fù)性的頁(yè)面時(shí),用json數(shù)據(jù)可以顯著提高編程效率,并且便于后期的數(shù)據(jù)維護(hù)。因此,在視頻專(zhuān)題頁(yè)面,需要展示多列視頻數(shù)據(jù),我選擇了用json。
HTML如下(只展示重點(diǎn)部分,需要引用JQ)
<div class="container-fluid content "> <div class="container neirong"> <div class="left fl"> <div class="title"> 熱門(mén)視頻 </div> <div class="medialist"> </div> </div></div> </div>
JS如下
<script> $(document).ready(function(){ console.log(1111) $.getJSON('data.json',function(data){ console.log(222) var mediahtml=""; $.each(data,function(i,data) { mediahtml+='<div class="media">'+ '<div class="media-left">'+ '<a data-toggle="modal" data-target="#myModal">'+ '<img class="media-object" src="'+data["imgsrc"]+ '" alt="">'+ '</a>'+'</div>'+ '<div class="media-body">'+ '<div class="title">'+ '<span class="classify">'+ data["classify"]+ '</span>'+ '<span class="titlename media-heading">'+ data['titlename']+ '</span>'+ '</div>'+ '<span class="time">'+ '<span class="glyphicon glyphicon-time"></span> '+ '<span>'+data['pubdate']+'</span>'+ '<p>'+data["intro"]+'</p>'+ '<div class="guest">'+ '<span class="jia">嘉</span>'+ '<span class="name">'+data["name"]+'</span>'+ '<span class="position">'+data["position"]+'</span>'+ '<span class="glyphicon glyphicon-eye-open"></span>'+ '<span class="click-rite"></span>'+ '</div>'+ '</div>'+ '<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">'+ '<div class="modal-dialog" role="document">'+ '<div class="modal-content">'+ '<div class="modal-header">'+ '<button type="button" class="close" data-dismiss="modal" aria-label="Close">'+ '<span aria-hidden="true">×</span>'+ '</button>'+ '</div>'+ '<div class="modal-body"></div>'+ '</div>'+ '</div>'+ '</div>' // var url_mobi=data.url_mobi; // var url_pc=data.url_pc; // if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iOS|iPad|Backerry|WebOS|Symbian|Windows Phone|Phone)/i))) { // $('.modal-body').prepend(url_mobi); // }else{ // $('.modal-body').prepend(url_pc); // } // // }) $('.medialist').after(mediahtml); }) }) $('#myModal').on('shown.bs.modal', function (e) { // 關(guān)鍵代碼,如沒(méi)將modal設(shè)置為 block,則$modala_dialog.height() 為零 $(this).css('display', 'block'); var modalHeight = $(window).height() / 2 - $('#myModal .modal-dialog').height() / 2; $(this).find('.modal-dialog').css({ 'margin-top': modalHeight }); }); //點(diǎn)擊預(yù)覽圖時(shí)判斷 // $('.modal').on('click', function () { // if ($('#myModal').css("display") == "none") { // $('.modal-body').children('iframe').attr('src', ''); // } else { // $('.modal-body').children('iframe').attr('src', // 'https://v.qq.com/iframe/player.html?vid=v0508nqkm75&tiny=0&auto=0'); // } // }) </script>
注釋部分可不看,不影響內(nèi)容。
首先要新建json文件,json文件需注意的問(wèn)題是:json對(duì)數(shù)據(jù)格式有要求,不識(shí)別url中的各類(lèi)符號(hào),因此會(huì)提示錯(cuò)誤,如果不修復(fù),則會(huì)阻斷JS進(jìn)程,造成數(shù)據(jù)在頁(yè)面不顯示,這個(gè)問(wèn)題我找了好久才發(fā)現(xiàn),而且json問(wèn)題在js中不會(huì)報(bào)錯(cuò)。解決辦法是利用encode方法,格式化url,然后再添加進(jìn)json即可,在html中應(yīng)該還要用decode轉(zhuǎn)回來(lái)。
第二個(gè)坑是插入html到某個(gè)標(biāo)簽中,有四個(gè)方法,用after就可以實(shí)現(xiàn),不要用反了。
第三點(diǎn)是需要注意,不要在拼接字符串的時(shí)候忘掉加號(hào),少一個(gè)就會(huì)出問(wèn)題,一個(gè)小問(wèn)題會(huì)找好久才發(fā)現(xiàn),而且拼接錯(cuò)誤JS不會(huì)報(bào)錯(cuò),很難發(fā)現(xiàn)。
以上就是獲取JSON數(shù)據(jù)并加載的方法。
相關(guān)文章
另一個(gè)javascript小測(cè)驗(yàn)(代碼集合)
共25道題,測(cè)試內(nèi)容包括運(yùn)算符,表達(dá)式,語(yǔ)句,javascript語(yǔ)言特性,JSON語(yǔ)法,數(shù)組,正則等。2011-07-07js圖片上傳中file、bolb、base64圖片之間的相互轉(zhuǎn)化
這篇文章主要介紹了js圖片上傳中file、bolb、base64圖片之間的相互轉(zhuǎn)化,blob轉(zhuǎn)file,blob轉(zhuǎn)base64,base64轉(zhuǎn)file,使用canvas壓縮圖片,需要的朋友可以參考下2022-05-05圖片輪換效果實(shí)現(xiàn)代碼(點(diǎn)擊按鈕停止執(zhí)行)
在這個(gè)實(shí)例中需要注意的是,要把images文件夾下圖片的命名設(shè)置為有順序的,1、2、3..才可以,感興趣的朋友可以參考下2013-04-04Bootstrap源碼解讀網(wǎng)格系統(tǒng)(3)
這篇文章主要源碼解讀了Bootstrap網(wǎng)格系統(tǒng),介紹了Bootstrap網(wǎng)格系統(tǒng)的工作原理具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12微信小程序 動(dòng)態(tài)修改頁(yè)面數(shù)據(jù)及參數(shù)傳遞過(guò)程詳解
這篇文章主要介紹了微信小程序 動(dòng)態(tài)修改頁(yè)面數(shù)據(jù)及參數(shù)傳遞過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09