window.onload =
function
() {
// 定义一个JavaScript内置对象
var
jsData = {
name:
'data'
,
dne:
'123'
}
// 通过_()方法将对象创建为一个Underscore对象
// underscoreData对象的原型中包含了Underscore中定义的所有方法,你可以任意使用
var
underscoreData = _(jsData);
// 通过value方法获取原生数据, 即jsData
console.info( underscoreData.value());
}
<script type=
"text/javascript"
>
var
_ =
'自定义变量'
;
</script>
<script type=
"text/javascript"
src=
"underscore/underscore-min.js"
></script>
<script type=
"text/javascript"
>
// Underscore对象
console.dir(_);
// 将Underscore对象重命名为us, 后面都通过us来访问和创建Underscore对象
var
us = _.noConflict();
// 输出"自定义变量"
console.dir(_);
</script>
$(
'a'
)
.css(
'position'
,
'relative'
)
.attr(
'href'
,
'#'
)
.show();
var
arr = [10, 20, 30];
_(arr)
.chain()
.map(
function
(item){
return
item++; })
.first()
.value();
//输出:10
// 这是Underscore中实现链式操作的关键函数,它将返回值封装为一个新的Underscore对象,并再次调用chain()方法,为方法链中的下一个函数提供支持。
var
result =
function
(obj, chain) {
return
chain ? _(obj).chain() : obj;
}
_.mixin({
method1:
function
(object) {
// todo
},
method2:
function
(arr) {
// todo
},
method3:
function
(fn) {
// todo
}
});
var
arr = [1, 2, 3];
_(arr).map(
function
(item, i) {
arr[i] = item + 1;
});
var
obj = {
first : 1,
second : 2
}
_(obj).each(
function
(value, key) {
return
obj[key] = value + 1;
});
<script>
window.onload =
function
() {
var
query = _(
function
() {
// 在这里进行查询操作
console.info($(
'#search'
).val())
//2秒后查询
}).debounce(2000);
$(
'#search'
).bind(
'keypress'
, query);
}
</script>
</head>
<body>
<input type=
"text"
id=
"search"
name=
"search"
/>
</body>
<script>
window.onload =
function
() {
var
query = _(
function
() {
// 在这里进行查询操作
console.info($(
'#search'
).val())
//2秒后查询
}).debounce(2000);
$(
'#search'
).bind(
'keypress'
, query);
var
html = $(
'.textone'
).html();
for
(
var
i = 0; i < 1000; i++) {
html += $(
'.textone'
).append(i+
"<br>"
);
}
var
query = _(
function
() {
// 在这里进行查询操作
console.info($(
'#search'
).val())
//
至少间隔3秒后查询
}).
throttle
(3000);
$(window).bind(
'scroll'
, query);
}
</script>
</head>
<body>
<input type=
"text"
id=
"search"
name=
"search"
/>
<div class=
"textone"
></div>
</body>
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title></title>
- <script src="Scripts/underscore.js"></script>
- <script src="Scripts/jquery-1.11.1.min.js"></script>
- </head>
- <body>
- <!-- 用于显示渲染后的标签 -->
- <ul id="element"></ul>
- <!-- 定义模板,将模板内容放到一个script标签中 -->
- <script type="text/template" id="tpl">
- <% for(var i = 0; i < list.length; i++) { %>
- <% var item = list[i] %>
- <li>
- <span><%=item.firstName%> <%=item.lastName%></span>
- <span><%-item.city%></span>
- </li>
- <% } %>
- </script>
- <script type="text/javascript">
- // 获取渲染元素和模板内容
- var element = $('#element'),
- tpl = $('#tpl').html();
- // 创建数据, 这些数据可能是你从服务器获取的
- var data = {
- list: [
- { firstName: '<a href="#">Zhang</a>', lastName: 'San', city: 'Shanghai' },
- { firstName: 'Li', lastName: 'Si', city: '<a href="#">Beijing</a>' },
- { firstName: 'Wang', lastName: 'Wu', city: 'Guangzhou' },
- { firstName: 'Zhao', lastName: 'Liu', city: 'Shenzhen' }
- ]
- }
- // 解析模板, 返回解析后的内容
- //var html = _.template(tpl, data);
- var compile = _.template(tpl)(data);
- console.log(compile);
- html = compile;
- // 将解析后的内容填充到渲染元素
- element.html(html);
- </script>
- </body>
- </html>
- _.templateSettings = {
- evaluate : /\{%([\s\S]+?)\%\}/g,
- interpolate : /\{%=([\s\S]+?)\%\}/g,
- escape : /\{%-([\s\S]+?)%\}/g
- }
- // 解析模板, 返回解析后的内容
- var render = _.template(tpl);
- var html = render(data);
- // 将解析后的内容填充到渲染元素
- element.html(html);
(1)Underscore.js入门的更多相关文章
-
Underscore.js(1.7.0) 中文文档 Underscore.js 入门
原文地址:http://www.css88.com/doc/underscore/ Underscore.js 入门 http://www.tuicool.com/articles/jQ3IfeR
-
Underscore.js 入门-常用方法介绍
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库作为自 ...
-
Underscore.js 入门
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率.将它单独运用到任何一个页面.(另外,Underscore还可以被使用在Node.js运行环境.) 在学习Unders ...
-
新手入门Underscore.js 中文(template)
Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了javaScript的编程.MVC框架Backbone.js就将这个库作为自 ...
-
Underscore.js基础入门
公司产品集成了对Underscore.js,所以需要对这个库有一定的了解.通过查阅资料,发现这个库主是对Array和JSON的处理支持.通过Underscore.js库,可以方便的对Array和JSO ...
-
前端mvc框架backbone.js入门[转]
原文地址:http://www.cnblogs.com/zhjh256/p/6083618.html 关于backbone.js的优缺点,这里就不详谈了,网上关于这方面的讨论很多了,而且各种框架之所以 ...
-
前端mvc框架backbone.js入门
关于backbone.js的优缺点,这里就不详谈了,网上关于这方面的讨论很多了,而且各种框架之所以长久生存,通常都是有其特定优势和擅长点的. 使用backbone.js作为前端框架的应用通常都是htm ...
-
Underscore.js
概述 Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库 ...
-
HiShop2.x版本中的上传插件分析,得出所用的模板语言为Underscore.js 1.6.0且自己已修改
效果: 上传组件非常的酷,但是分析其使用JS写法使用了模板语言的,代码如下: <script type="text/j-template" id="tpl_popb ...
随机推荐
-
List集合及子类
List集合特点:有序(存储和取出的元素一致):可重复 1.添加功能 void add(int index,Object element):在指定位置添加元素 2.获取功能 Object get(in ...
-
javascript动态创建script标签,加载完成后调用回调
代码如下: var head = document.getElementsByTagName('head')[0]; var script = document.createElement('scri ...
-
Java 概述
一 Java 程序的种类 1)Java 小应用程序(Java Applet) — 在Web浏览器中运行(内嵌Java虚拟机) —特定标记 <APPLET CODE="HelloWorl ...
-
检测电脑安装的net framework版本
https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx To find .NET Framework versions by ...
-
S1:对象与JSON
JSON全称为JavaScript对象表示法(JavaScript Object Notation). JSON是JavaScript中对象的字面量,是对象的表示方法,通过使用JSON,可以减少中间变 ...
-
使用Pycharm创建Django项目
一.安装django pip install django 二.创建空django项目 选择New Project...打开创建项目向导. 成功创建一个空Django项目. 创建好的项目可以看到,已经 ...
-
flink--DateSet开发--简单入门
开发流程 1. 获得一个execution environment, 2. 加载/创建初始数据, 3. 指定这些数据的转换, 4. 指定将计算结果放在哪里, 5. 触发程序执行 例子: object ...
-
[译]ABP vNext微服务演示,项目状态和路线图
译注: ABP的主要负责人hikalkan最近又发布了一篇博客, 说明了ABP vNext的微服务演示,项目状态和路线图.其中特意对ABP的中文社区进行了感谢! 本文翻译自该博客文章(https:// ...
-
Codeforces 85 D. Sum of Medians
题目链接:http://codeforces.com/contest/85/problem/D 做法果然男默女泪啊..... 大概就是直接开了一个$vector$每次插入删除都用自带的$insert$ ...
-
如何获取帮助———— QQ群讨论摘要
QQ群对话整理(删除一些简单的回应),对一些重要的地方,我做了一些加粗 宝玉 2015/9/21 1:49:05 这次题目还有个问题就是如何读取Excel,我想对于很多同学来说是个困难 ...