欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:

柚子快報邀請碼778899分享:

http://yzkb.51969.com/

});

當jquery.color.js動畫插件加載完畢后,單擊id為“go”按鈕時,class為block的元素就有了顏色動畫變化。

$.getJSON()

===========

$.getJSON()方法用于加載JSON文件,與$.getScript()方法的用法相同。

我們來看demo2.

demo2.html

已有評論:

test.json代碼:

[

{

“username”: “張三”,

“content”: “沙發(fā).”

},

{

“username”: “李四”,

“content”: “板凳.”

},

{

“username”: “王五”,

“content”: “地板.”

}

]

但點擊“加載”按鈕后,網(wǎng)頁上看不到任何效果。雖然加載了JSON文件,但是并沒有告訴JavaScript對返回的數(shù)據(jù)如何處理。為此,jQuery提供了回調(diào)函數(shù),在回調(diào)函數(shù)里處理返回的數(shù)據(jù)。代碼如下:

$(function() {

$(‘#send’).click(function() {

$.getJSON(‘test.json’,function(data) {

//data:返回的數(shù)據(jù)

});

});

});

可以在函數(shù)中通過data變量來遍歷相應(yīng)的數(shù)據(jù),也可以使用迭代方式為每個項構(gòu)建相應(yīng)的HTML代碼。雖然在這里可以使用傳統(tǒng)的for循環(huán)來實現(xiàn),但既然是講解jQuey,那么還是使用jQuery里的方法。jQuery提供了一個通用的遍歷方法$.each(),可以用于遍歷對象和數(shù)組。

$.each()函數(shù)不同于jQuery對象的each()方法,它是一個全局函數(shù),不操作jQuery對象,而是以一個數(shù)組或者對象作為第1個參數(shù),以一個回調(diào)函數(shù)作為第2個參數(shù)?;卣{(diào)函數(shù)擁有兩個參數(shù):第1個為對象的成員或數(shù)組的索引,第2個為對象變量或內(nèi)容。代碼如下:

$(function(){

$(‘#send’).click(function() {

$.getJSON(‘test.json’, function(data) {

$(‘#resText’).empty();

var html = ‘’;

$.each(data, function(commentIndex, comment) {

html += ‘

’ + comment[‘username’] + ‘:

’ + comment[‘content’] + ‘

’;

});

$(‘#resText’).html(html);

});

});

});

修改后的demo2.html代碼如下:

已有評論:

在上面的代碼中,在jQuery部分,當返回數(shù)據(jù)成功后,首先清空id為“resText”的元素的內(nèi)容,以便重新構(gòu)造新的HTML,然后通過$.each()循環(huán)函數(shù)依次遍歷每個項,并將遍歷出來的內(nèi)容構(gòu)建成HTML代碼拼接起來,最后將構(gòu)建好的HTML添加到id為“resText”的元素中。

不僅如此,還能通過使用JSONP形式的回調(diào)函數(shù)來加載其他網(wǎng)站的JSON數(shù)據(jù),例如從圖片網(wǎng)站(http://Flicker.com)搜索汽車類別的4張最新圖片。代碼如下:(假設(shè)你已經(jīng)對JSONP有了解——不熟悉JSONP的同學可以看我的這篇文章:關(guān)于JSON和JSONP的詳解)

上面的代碼中再次用到全局函數(shù)$.each()來遍歷數(shù)據(jù),因為只需要4張圖片,所以當i=3的時候就需要退出循環(huán)。在$.each()函數(shù)中,如果需要退出each循環(huán),只要返回false即可。

關(guān)于JSON和JSONP的詳解

$.ajax()方法

==========

$.ajax()方法是jQuery最底層的Ajax實現(xiàn)。

它的結(jié)構(gòu)為:

$.ajax(options)

該方法只有1個參數(shù),但在這個對象里包含了$.ajax()方法所需要的請求設(shè)置以及回調(diào)函數(shù)等信息,參數(shù)以key/value的形式存在,所有參數(shù)都是可選的。

前面用到的$.load()、$.get()、$.post()、$getScript()和$.getJSON()這些方法,都是基于$.ajax()方法構(gòu)建的,$.ajax()方法是jQuery最底層的Ajax實現(xiàn),因此可以用它來代替前面的所有方法。

例如,可以使用下面的jQuery代碼代替$.getScript方法:

$(function(){

$(‘#send’).click(function() {

$.ajax({

type: “GET”,

url: “test.js”,

dataType: “script”

});

});

});

再例如,可以使用以下jQuery代碼來代替$.getJSON()方法:

$(function(){

$(‘#send’).click(function() {

$.ajax({

type: “GET”,

url: “test.json”,

dataType: “json”,

success : function(data){

$(‘#resText’).empty();

var html = ‘’;

$.each( data , function(commentIndex, comment) {

html += ‘

’ + comment[‘username’] + ‘:

’ + comment[‘content’] + ‘

’;

});

$(‘#resText’).html(html);

$(‘#resText’).val(html);

}

});

});

});

序列化

===

最后,講解一下序列化元素:

1.serialize()方法

做項目的過程中,表單是必不可少的,經(jīng)常用來提供數(shù)據(jù),例如注冊、登錄等。常規(guī)的方法是使表單提交到另一個頁面,整個瀏覽器都會被刷新,而使用Ajax技術(shù)則能夠異步的提交表單,并將服務(wù)器返回的數(shù)據(jù)顯示在當前頁面中。

前面在講解$.get()和$.post()方法的時候,表單的HTML代碼如下:

評論:

姓名:

為了獲取姓名和內(nèi)容,必須將字段的值逐個添加到data參數(shù)中。代碼如下:

$(‘#send’).click(function() {

$.get(“get1.php”, {

username:$(‘#username’).val(),

content:$(‘#content’).val()

},function(data,textStatus){

$(‘#resText’).html(data); //將返回的數(shù)據(jù)添加到頁面上

});

});

這種方式只有少量字段的表單中,勉強還可以用,但如果表單元素越來越復雜,使用這種方式在增大工作量的同時也使表單缺乏彈性。jQuery為這一常用的操作提供了一個簡化的方法——serialize()。與jQuery中其他方法一樣,serialize()方法也是作用于一個jQuery對象,它能夠?qū)OM元素內(nèi)容序列化為字符串,用于Ajax請求。通過使用serialize()方法,可以把剛才的jQury代碼改為如下:

$(‘#send’).click(function() {

.

g

e

t

(

"

g

e

t

1.

p

h

p

"

,

.get("get1.php",

.get("get1.php",(‘#form1’).serialize(),function(data,textStatus){

$(‘#resText’).html(data); //將返回的數(shù)據(jù)添加到頁面上

});

});

我們可以看到使用serialize()與前面那個逐個傳參的效果是一樣的。

而且這種,即使在表單中再增加字段,腳本仍然能夠使用,并且不需要做其他多余工作。

需要注意的是,$.get()方法中data參數(shù)不僅可以使用映射方式,如以下jQuery代碼:

{

username: $(‘#username’).val(),

conent: $('#content).val()

}

也可以使用字符串方式,如以下jQuery代碼:

“username=” + encodeURIComponent(KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#?username').val(…(‘#content’).val())

用字符串方式時,需要注意對字符編碼(中文問題),如果不希望編碼帶來麻煩,可以使用serialize()方法,它會自動編碼。

因為serialize()方法作用于jQuery對象,所以不光只有表單能使用它,其他選擇器選取的元素也都能使用它,如以下jQuery代碼:

$(“:checkbox,:radio”).serialize();

把復選框和單選框的值序列化為字符串形式,只會將選中的值序列化。

2.serializeArray()方法

在jQuery中還有一個與serialize()類似的方法——serializeArray(),該方法不是返回字符串,而是將DOM元素序列化后,返回JSON格式的數(shù)據(jù)。jQuery代碼如下:

var fields = $(“:checkbox,:radio”).serializeArray();

console.log(fields);

通過console.log()方法輸出fields對象,然后在瀏覽器的F12中查看該對象。

既然是一個對象,那么就可以使用$.each()函數(shù)對數(shù)據(jù)進行迭代輸出。代碼如下:

$(function() {

var fields = $(“:checkbox,:radio”).serializeArray();

console.log(fields);

$.each(fields,function(i,field){

$(‘#results’).append(fiels.value + " , ");

});

});

3.$.param()方法

它是serialize()方法的核心,用來對一個數(shù)組或?qū)ο蟀凑誯ey/value進行序列化。

例如:

var obj = {a:1,b:2,c:3};

var k = $.param(obj);

alert(k); //輸出a=1&b=2&c=3

TIP

===

$.ajax() 方法是

.

g

e

t

.get、

.get、.post 等一系列方法的基礎(chǔ),這些方法的底層還是調(diào)用 $.ajax() 方法。拿一小段源碼來看一下:

getJSON: function(url,data,callback) {

return jQuery.get(url,data,callback,“json”);

}

get: function(url,data,callback,type) {

// shift arguments if data argument was omited

if(jQuery.isFunction(data)) {

柚子快報邀請碼778899分享:

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19569334.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄