tethys

DOM 操作库
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 国产
投 递 者 怀宇
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

tethys,这是一个微型的库,包含最常用的 DOM 操作,压缩后只有 2KB。

起源

自从 angular、vue 这类框架出现之后,我们终于不用再面对业务逻辑与dom操作混杂的代码。

但是,在极少的时候,特别是在组件中,我们仍然想要对页面元素进行直接的处理。

可是,你又不想仅仅为了用到几个方法,就去引入几十K的zepto或上百K的jquery。

这种情况下,tethys是一个不错的选择。

它包含以下实例方法:

和以下静态方法:

安装

如果在Node.js环境中使用,通过以下命令安装它。

npm i tethys

https://www.npmjs.com/package/tethys

引用

标签引入:

<script src="https://raw.githubusercontent.com/hapjs/tethys/master/tethys.min.js"></script>

如果通过 script 方式引入,你可以通过全局变量 tethys 来调用它。

如果全局变量$没有被其它库或者变量占用的话,那么$会指向tethys。

CommonJS/CMD/AMD引入:

var $ = require('tethys');

ES6引入:

import $ from 'tethys';

查找元素

通过选择器查找

$('#id'); $('.class');

直接传入元素

$(document.body);

指定查找范围

$('style', document.head);

与 jQuery 类似,你将得到一个包含查找到的节点的数组,这个数组有下列方法供你操作:

each

遍历

$('script').each(function(script, index){ // console.log(this.getAttribute('type')); });

on

事件绑定

$('button').on('click', function(){ // this.style.color = 'red'; });

css

设置单个样式

$('button').css('color', 'red');

设置多个样式

$('button').css({
    display: 'block',
    border: '1px solid green' });

取样式

$('button').css('color'); // red

attr

设置单个属性

$('button').attr('maxlength', 16);

设置多个属性

$('button').attr({ 'maxlength': 16 });

取属性:

$('button').attr('maxlength'); // 16

class

添加class

$('button').addClass('active');

删除class

$('button').removeClass('active');

判断是否存在指定class

$('button').hasClass('active'); // true

show/hide

显示

$('button').show();

隐藏

$('button').hide();

html

修改文档的innerHTML

$('button').html('<p>Hello world!</p>');

链式调用

$('button')
    .css('color', 'red')
    .addClass('active')
    .each(function(){ })
    .on('click', function(){ });

获得原生节点

栗子1:获得第一个script标签

$('script')[0]; // <script>...</script>

栗子2:遍历所有style标签

$('style').each(function(){ // <style>...</style> })

静态方法

除了上述实例方法以外,还有下面的静态方法可以使用。

extend

浅层复制

$.extend(obj1, obj2); $.extend(obj1, obj2, obj3);

深层复制

$.extend(true, obj1, obj2)
 相关资料
  • HyperLogLog主要解决大数据应用中的非精确计数(可能多也可能少,但是会在一个合理的范围)操作,它可以接受多个元素作为输入,并给出输入元素的基数估算值,基数指的是集合中不同元素的数量。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 的基数就是 3 。 HyperLogLog 的优点是,即使输入元素的数量或者体积非常非常大,计算基数所需的

  • redis 的key操作是涉及范围最广的操作 。

  • awesome 中,所有的操作都可以用快捷键完成: 打开终端 Mod4 + Return   运行命令 Mod4 + F1   关闭当前窗口 Mod4 + Shift + c   重启awesome Mod4 + Control + r   退出awesome Mod4 + Shift + q   重绘当前窗口 Mod4 + Shift + r         窗口间切换 Mod4 + j Mod

  • buffer buffer() 操作符的函数签名: buffer([breakObservable]) buffer 本身意味着我们在等待而不会发出任何值,直到 breakObservable 发生。示例如下: let breakWhen$ = Rx.Observable.timer(1000); let stream$ = Rx.Observable.interval(200) .buffer(

  • 这可不是一个简单的话题。其中涉及了应用程序中的诸多领域,你可能想要同步 API 的响应,或者你想要处理其它类型的流,比如 UI 中的点击事件或键盘事件。 有大量的操作符以它们各自的方式来处理时间,比如 delay、 debounce、 throttle、 interval, 等等。 interval 这个操作符用来创建一个 Observable,基本上它所做的就是按固定的时间间隔提供值,函数签名如

  • max let stream$ = Rx.Observable.of(5,4,7,-1) .max(); 发出的值是7。这个操作符的功能显而易见,只提供一个最大值。还有不同的方式来调用它,可以传入一个 comparer 函数: function comparer(x,y) { if( x > y ) { return 1; } else if( x < y ) {

  • 有一些操作符允许你组合两个及以上的 source,它们的行为有所不同,重要的是要知道它们之间的区别。 combineLatest 函数签名如下: Rx.Observable.combineLatest([ source_1, ... source_n]) let source1 = Rx.Observable.interval(100) .map( val => "source1 " + val

  • 这个类别的全部是展示以某些东西为基础来创建 Observables 是多么的容易,因此他们可以和操作符配合的很好,而不在乎是怎样的构造,从而实现丰富的组合。 from 在 RxJS 4中,存在一些类似名称的操作符,例如 fromArray()、from()、fromPromise() 等等。所有这些 fromXXX 的操作符现在全由 from() 接管了。来看一些示例: 老的 fromArray