html中通過JS獲取JSON數(shù)據(jù)并加載的方法
在寫內(nèi)容邏輯重復(fù)性的頁面時(shí),用json數(shù)據(jù)可以顯著提高編程效率,并且便于后期的數(shù)據(jù)維護(hù)。因此,在視頻專題頁面,需要展示多列視頻數(shù)據(jù),我選擇了用json。
HTML如下(只展示重點(diǎn)部分,需要引用JQ)
<div class="container-fluid content ">
<div class="container neirong">
<div class="left fl">
<div class="title">
熱門視頻
</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)鍵代碼,如沒將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文件需注意的問題是:json對(duì)數(shù)據(jù)格式有要求,不識(shí)別url中的各類符號(hào),因此會(huì)提示錯(cuò)誤,如果不修復(fù),則會(huì)阻斷JS進(jìn)程,造成數(shù)據(jù)在頁面不顯示,這個(gè)問題我找了好久才發(fā)現(xiàn),而且json問題在js中不會(huì)報(bào)錯(cuò)。解決辦法是利用encode方法,格式化url,然后再添加進(jìn)json即可,在html中應(yīng)該還要用decode轉(zhuǎn)回來。
第二個(gè)坑是插入html到某個(gè)標(biāo)簽中,有四個(gè)方法,用after就可以實(shí)現(xiàn),不要用反了。
第三點(diǎn)是需要注意,不要在拼接字符串的時(shí)候忘掉加號(hào),少一個(gè)就會(huì)出問題,一個(gè)小問題會(huì)找好久才發(fā)現(xiàn),而且拼接錯(cuò)誤JS不會(huì)報(bào)錯(cuò),很難發(fā)現(xiàn)。
以上就是獲取JSON數(shù)據(jù)并加載的方法。
相關(guān)文章
解析JavaScript中的不可見數(shù)據(jù)類型
這篇文章主要是對(duì)JavaScript中的不可見數(shù)據(jù)類型進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
CutePsWheel javascript libary 控制輸入文本框?yàn)榭墒褂脻L輪控制的js庫
實(shí)現(xiàn)類似于Photoshop控制面板輸入文本數(shù)字的效果,所以名稱叫做PsWheel。用于控制輸入數(shù)字類型文本框?qū)崿F(xiàn)鼠標(biāo)滾輪上下滑動(dòng)改變值,支持正整數(shù)、小數(shù)類型輸入文本。2010-02-02
JavaScript設(shè)計(jì)模式之單例模式原理與用法實(shí)例分析
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之單例模式原理與用法,結(jié)合實(shí)例形式分析了單例模式的原理、命名空間的使用、閉包、惰性單例形式以及單例模式的基本應(yīng)用,需要的朋友可以參考下2018-07-07
js中promise如何取到[[PromiseResult]]問題
這篇文章主要介紹了js中promise如何取到[[PromiseResult]]問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
純前端生成PDF(jsPDF)并下載保存或上傳到OSS的代碼示例
這篇文章主要介紹了純前端生成PDF(jsPDF)并下載保存或上傳到OSS的相關(guān)資料,主要步驟包括獲取DOM節(jié)點(diǎn)、生成PDF、保存或上傳PDF,文章還提到了一些注意事項(xiàng),需要的朋友可以參考下2025-01-01
全面解析Bootstrap表單使用方法(表單控件狀態(tài))
這篇文章全面解析了Bootstrap表單的使用方法,本文重點(diǎn)介紹Bootstrap表單控件狀態(tài)的三種情況,感興趣的小伙伴們可以參考一下2015-11-11

