※$.each
就是迴圈$(function(){ $.each(['a', 'b', 'c'], function(i, v){ console.log('i=' + i); console.log('v=' + v); }); //0 a-->1 b-->2 c $.each({'a':'one', 'b':'two', 'c':'three'}, function(i, v){ console.log('i=' + i); console.log('v=' + v); }); //a one-->b two-->c three $.each({'a':{a1:1}, 'b':'two', 'c':{c3:3}}, function(i, v){ console.log('i=' + i); if($.isPlainObject(v)){ for(vc in v){ console.log('vc=' + vc); console.log('v[vc]=' + v[vc]); } } else { console.log('v=' + v); } }); // a a1 1-->b two-->c c3 3 });
※如果只有value,那第一個參數就是index
※$.isXXX
isXXX都是判斷用的方法,目前有以下七種1.$.isArray():是否是陣列
2.$.isEmptyObject():是否是空物件
3.$.isFunction():是否是function
4.$.isNumeric():是否是數字
5.$.isPlainObject():是否是物件
6.$.isWindow():是否是window物件
7.$.isXMLDoc():是否是XML文件
※isPlainObject、isArray、isEmptyObject
console.log($.isPlainObject({a:1, b:2})); // true console.log($.isPlainObject([1,2,3])); // false console.log($.isPlainObject({})); // true console.log($.isPlainObject([])); // false console.log($.isPlainObject({a:[4,5,6], b:[7,8,9]})); // true console.log($.isPlainObject([{c:3}, {d:4}])); // false console.log($.isPlainObject(function(){})); // false console.log($.isArray({a:1, b:2})); // false console.log($.isArray([1,2,3])); // true console.log($.isArray({})); // false console.log($.isArray([])); // true console.log($.isArray({a:[4,5,6], b:[7,8,9]})); // false console.log($.isArray([{c:3}, {d:4}])); // true console.log($.isArray(function(){})); // false console.log($.isEmptyObject('')); // true console.log($.isEmptyObject("")); // true console.log($.isEmptyObject({})); // true console.log($.isEmptyObject([])); // true console.log($.isEmptyObject(function(p){})); // true console.log($.isEmptyObject(function(){var a = 5; return a + 5})); // true
※{}就是物件;[]就是陣列
※要注意判斷空物件時的function,裡面明明有東西,但還是true
※isFunction
function aFunction(){} var bFunction = function(){} var cFunction = new Function(); // var dFunction = (x) => {} console.log($.isFunction(aFunction)); // true console.log($.isFunction(bFunction)); // true console.log($.isFunction(cFunction)); // true // console.log($.isFunction(dFunction)); // true console.log($.isFunction(function(){})); // true
※注解的部分是IE不支援
※isNumeric、isWindow
console.log($.isNumeric(+10)); // true console.log($.isNumeric("-10")); // true console.log($.isNumeric(0144)); // true console.log($.isNumeric(0xFF)); // true console.log($.isNumeric("0xFF")); // true console.log($.isNumeric("8e5")); // true console.log($.isNumeric(3.1415)); // true console.log($.isWindow(window)); // true console.log($.isWindow(document)); // false
※注意判斷數字時,其他進位也有支援
※isXMLDoc、parseXML
console.log($.isXMLDoc('<xxx></xxx>')); // false console.log($.isXMLDoc($.parseXML('<xxx></xxx>'))); // true console.log($.isXMLDoc($.parseXML('<xxx />'))); // true
※經過parseXML後,才是XML,就算字串裡有加xml第一行的version1.0之類的結果也是一樣,反正裡面就是字串
※parseXXX
目前有三種1. parseXML:轉成XML,上個範例已有,以下就不寫了
2.parseJSON:轉成JSON
3.parseHTML:轉成HTML
※parseJSON
// alert($.parseJSON('{a:1}').a); // 執行時錯誤 // alert($.parseJSON("{'a':1}").a); // 執行時錯誤 alert($.parseJSON('{"a":1}').a); // 1 // alert($.parseJSON('["a":1]').a); // 執行時錯誤 // alert($.parseJSON('{"a":"1\t2"}').a); // 執行時錯誤 alert($.parseJSON(null)); //null alert($.parseJSON(undefined)); // 1.9之前null,之後執行時錯誤
※只有雙引號才可以,其他就只有null不會報錯
※parseHTML
<div id="log" /> ---------- var html = $.parseHTML("hello, <b>my name is</b> jQuery."); $("#log").append(html); $.each(html, function(i, v) { console.log(i); // 0-->1-->2 console.log(v); // hello,--><b>my name is</b>-->jQuery. console.log('-----'); });
※append時,轉不轉成HTML都可以,但如果不轉成HTML,用each會執行錯誤
※還有第二、三個參數可用,我沒研究
沒有留言:
張貼留言