※$.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會執行錯誤
※還有第二、三個參數可用,我沒研究
沒有留言:
張貼留言