结构-行为-样式-Javascript笔记
一、console.dir()可以显示一个对象所有的属性和方法。
二、递归遍历一个数据集合:
A、数据:
{
"menu": [
{
"menuId": 1,
"subMenus": [
{
"menuId": 101,
"subMenus": [ {}]
}
]
}
]
}
B、代码:
/*function setHref(data){
if(!data.length == 0){
for(var i = 0;i<data.length;i++){
var tmp = data[i].href.split(".");
if(tmp.length >2){
data[i].href = tmp.join("/");
}
data[i].subMenus = setHref(data[i].subMenus);
}
}
return data;
}*/
三、分页插件
页面:
<ul class="pagination" id="pagination"></ul>
初始化:
$.jqPaginator('#pagination', {
totalPages: total,
visiblePages: 3,
currentPage: currentpage,
onPageChange: function (num, type) {
if(type=="change"){
......
}
}
});
四、关于Json:
content={
news_item=[
{
title=a,
digest=tan for test,
content=just for test,
content_source_url=, thumb_media_id=mgzrMNJ9WmVJvYxBmk2G84Fa6wp8ugJLsEsNm7B89Vo,
show_cover_pic=0,
url=http://mp.weixin.qq.com/s?__biz=MzA5NDUwOTc0Ng==&mid=400391997&idx=1&sn=8cbc3e95bed
ca2449fb243e0c25d6e94#rd
}
]
}
对于上述的Json数据:
"[" "]" 中的数据就可以用List来取;
"{""}"中的数据就可以用Map来取;
五、属性选择器
var a = 10; // 原始值 // 但是可以访问方法(就像对象一样) alert(a.toString()); // "10" // 此外,我们可以在a上创建一个心属性 a.test = 100; // 好像是没问题的 // 但,[[Get]]方法没有返回该属性的值,返回的却是undefined alert(a.test); // undefined 使用属性访问器以后,它已经不是原始值了,而是一个包装过的中间对象(整个例子是使用new Number(a)),而toString方法这时候是通过原型链查找到的: // 执行a.toString()的原理: wrapper = new Number(a); wrapper.toString(); // "10" delete wrapper; //中间对象没了,所以你调用不了,undefined
六、Js客户端检测
// Opera 8.0+ var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0; // Firefox 1.0+ var isFirefox = typeof InstallTrigger !== 'undefined'; // At least Safari 3+: "[object HTMLElementConstructor]" var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; // Internet Explorer 6-11 var isIE = /*@cc_on!@*/false || !!document.documentMode; // Edge 20+ var isEdge = !isIE && !!window.StyleMedia; // Chrome 1+ var isChrome = !!window.chrome && !!window.chrome.webstore; // Blink engine detection var isBlink = (isChrome || isOpera) && !!window.CSS;