Node API¶
Contents
- Node API
- K(expr , root)
- length
- doc
- name
- type
- bind(type , fn)
- unbind([type , fn])
- fire(type)
- hasAttr(key)
- attr()
- attr(key)
- attr(key, val)
- attr(obj)
- removeAttr(key)
- get([i])
- eq(i)
- hasClass(cls)
- addClass(cls)
- removeClass(cls)
- html()
- html(val)
- hasVal()
- val()
- val(val)
- css()
- css(key)
- css(key, val)
- css(obj)
- width()
- width(val)
- height()
- height(val)
- opacity(val)
- data(key)
- data(key, val)
- pos()
- clone(bool)
- append(expr)
- before(expr)
- after(expr)
- replaceWith(expr)
- remove([keepChilds])
- show([val])
- hide()
- outer()
- isSingle()
- isInline()
- isBlock()
- contains(otherNode)
- parent()
- children()
- first()
- last()
- index()
- prev()
- next()
- scan(fn [, order])
K(expr , root)¶
创建或选取KNode对象,KNode是原生node的封装,KNode对象拥有以下属性和方法。
- 参数:
- string|node expr: DOM元素、选择器表达式、HTML代码
- element root: DOM根元素,在root范围内选择DOM元素
返回: KNode
示例:
node = K('<div>abc</div>');
node = K('#id div');
node = K(document.getElementById('id'));
firstNode = node[0];
bind(type , fn)¶
将指定函数绑定到所有KNode的指定事件上。
- 参数:
- string type: 事件类型
- function fn: 回调函数
返回: KNode
示例:
K('#id div').bind('click', function() {
alert(this.nodeName + ': clicked');
});
K('#id div').click(function() {
alert(this.nodeName + ': clicked');
});
unbind([type , fn])¶
移除已绑定的事件函数。
- 参数:
- string type: 事件类型
- function fn: 回调函数
返回: KNode
示例:
K('#id').unbind('click', functionName); //移除指定的事件函数
K('#id').unbind('click'); //移除所有click事件函数
K('#id').unbind(); //移除所有事件函数
fire(type)¶
执行绑定在第一个node上的事件函数。
- 参数:
- string type: 事件类型
返回: KNode
示例:
K('#id').fire('click');
K('#id').click();
hasAttr(key)¶
判断第一个node是否拥有指定属性。
- 参数:
- string key: 属性名
返回: boolean
示例:
var bool = K('#id').hasAttr('border');
attr()¶
取得第一个node的所有属性.
- 参数: 无
- 返回: object
示例:
var attrList = K('#id').attr(); //return key-value data
attr(key, val)¶
设置所有node的属性。
- 参数:
- string key: 属性名
- string val: 属性值
返回: KNode
示例:
K('#id img').attr('border', 1);
attr(obj)¶
设置所有node的多个属性。
- 参数:
- object obj: key-value数组
返回: KNode
示例:
K('#id img').attr({
'width' : '100px',
'border' : 1
});
removeAttr(key)¶
移除所有node的指定属性.
- 参数:
- string key: 属性名
返回: KNode
示例:
K('#id img').removeAttr('border');
get([i])¶
取得原生node,当KNode的length为0时,返回null.
- 参数:
- int i: offset,默认值为0
返回: node
示例:
div1 = K('#id div').get(0);
div2 = K('#id div').get(1);
eq(i)¶
将KNode对象转换成length为1的KNode对象。
- 参数:
- int i: The index of the element in the KNode object.
返回: KNode
示例:
K('div').eq(2).addClass('blue');
hasClass(cls)¶
判断第一个node是否拥有指定class。
- 参数:
- string cls: className
返回: boolean
示例:
var bool = K('#id').hasClass('class-name');
addClass(cls)¶
将指定className添加到所有node。
- 参数:
- string cls: className
返回: KNode
示例:
K('#id').addClass('class-name');
removeClass(cls)¶
移除所有node上的指定className。
- 参数:
- string cls: className
返回: KNode
示例:
K('#id').removeClass('class-name');
html(val)¶
设置所有node的innerHTML。
- 参数:
- string val: HTML字符串
返回: KNode
示例:
K('#id').html('<strong>abc</strong>');
hasVal()¶
判断第一个node是否拥有value属性。
- 参数: 无
- 返回: boolean
示例:
bool = K('#textarea').hasVal(); //return true
bool = K('#div').hasVal(); //return false
css(key)¶
取得第一个node的指定CSS.
- 参数:
- string key: CSS key
返回: string
示例:
var padding = K('#id').css('padding');
css(key, val)¶
设置所有node的CSS。
- 参数:
- string key: CSS key
- string val: CSS value
返回: KNode
示例:
K('#id div').css('border', '1px solid #000');
css(obj)¶
设置所有node的多个CSS。
- 参数:
- object obj: key-value数组
返回: KNode
示例:
K('#id div').css({
'width' : '100px',
'height' : '50px',
'padding' : '10px'
});
width(val)¶
设置所有node的宽度。
- 参数:
- string val: 宽度
返回: KNode
示例:
K('#id div').width(200);
K('#id div').width('200px');
K('#id div').width('100%');
height(val)¶
设置所有node的高度。
- 参数:
- string val: 高度
返回: KNode
示例:
K('#id div').height(200);
K('#id div').height('200px');
K('#id div').height('100%');
data(key)¶
取得已绑定的自定义数据。
- 参数:
- string key: data key
返回: string
示例:
var data = K('#id').data('data_id');
data(key, val)¶
绑定自定义数据。
- 参数:
- string key: data key
- string val: data value
返回: string
示例:
K('#id').data('abc', 1);
pos()¶
取得第一个node在整个document上的x坐标和y坐标。
- 参数: 无
- 返回: string
示例:
var pos = K('#id').pos();
var x = pos.x;
var y = pos.y;
clone(bool)¶
复制第一个node,并返回第一个node的KNode。
- 参数:
- boolean bool: true时复制所有子节点,false时只复制父节点
返回: 新的KNode
示例:
var newKNode = K('#id').clone();
append(expr)¶
element添加一个子节点。
- 参数:
- string|node expr: DOM元素、选择器表达式、HTML代码
返回: KNode
示例:
K('#id').append(divNode);
K('#id').append('<div class="abc">def</div>');
before(expr)¶
node的前面添加一个节点。
- 参数:
- string|node expr: DOM元素、选择器表达式、HTML代码
返回: KNode
示例:
K('#id').before(divNode);
K('#id').before('<div class="abc">def</div>');
after(expr)¶
node的后面添加一个节点。
- 参数:
- string|node expr: DOM元素、选择器表达式、HTML代码
返回: KNode
示例:
K('#id').after(divNode);
K('#id').after('<div class="abc">def</div>');
replaceWith(expr)¶
替换node。
- 参数:
- string|node expr: DOM元素、选择器表达式、HTML代码
返回: KNode
示例:
K('#id').replaceWith(divNode);
K('#id').replaceWith('<div class="abc">def</div>');
remove([keepChilds])¶
删除node。
- 参数:
- boolean keepChilds: 是否保留子节点,true或false,默认值为false
返回: KNode
示例:
K('#id').remove();
isSingle()¶
判断第一个element是否有闭合标签。
- 参数: 无
- 返回: boolean
示例:
if (K('div').isSingle()) {
console.log('false');
}
isInline()¶
判断第一个element是不是inline element。
- 参数: 无
- 返回: boolean
示例:
if (K('div').isInline()) {
console.log('false');
}
isBlock()¶
判断第一个element是不是block element。
- 参数: 无
- 返回: boolean
示例:
if (K('div').isBlock()) {
console.log('true');
}
contains(otherNode)¶
判断第一个element是否包含指定node。
- 参数:
- node otherNode: 任意节点
返回: boolean
示例:
if (K('div#id').contains(K('div#id p')[0])) {
console.log('true');
}
scan(fn [, order])¶
遍历第一个node的所有子节点。
- 参数:
- function fn: 回调函数
- boolean order: 遍历方向,true为顺序,false为逆序,默认值为true
返回: KNode
示例:
K('div#id').scan(function(node) (
console.log(node);
));