jQuery 的 val 与 ezj 的 val 差别挺大

作者:vkvi 来源:ITPOW(原创) 日期:2010-12-12

支持的标签不同

同样的 HTML 代码

jQuery

d1 不会有值,因为 jQuery 认为 val 是指 value 属性,而 div 没有 value 属性,所以 d1 不会有值。

ezj

ezj 认为尽量用 id,提高效率,所以 $ 包装中,id 不需要前缀 #,而标签名称使用前缀 <。

可以看到 ezj 的 val 将 div 和 input 都赋值了。ezj 在对待 val 时会识别元素类型,以判断是使用 value、src、innerHTML 中的哪一个。

ezj 还支持 SELECT 标签

这样就为 id 为 select1 的 SELECT 设置了下拉列表项。参数为数组表示列表项,数组的每一项由包含 text 和 value 的对象组成,分别表示下拉列表项的 text 和 value。

ezj 将 val 和 sel 分开

jQuery 的 val 如果是列表框、多选框、单选框等,则可通过传入它们的值来进行选择

而 ezj 则不同,正如前面看到的,ezj 通过 val 值入值不是为了选择,而是为了赋值。如果要对列表框、多选框、单选框等实施选择,那么在 ezj 中可用 sel 方法,sel 方法支持三种类型(以下 multiple 是一个列表框):

值得推荐的是其 all、inverse、none 三个字符串,使得设置全选、反选、全不选非常方便。

返回值不同

jQuery 如果是取多个标签的 val,那么总是返回第一个标签的 val,也就是说返回的不是数组。

ezj 如果是按 tag、class、name 来包装的话,其 val 总是以数组的形式返回这些标签的 val,不论是一个标签还是多个标签。也就是说 ezj 的 val 只有在包装 id 的时候,val 返回的才不是数组。

追加、插入值的方法不同

jQuery 可用 append 进行追加值,但这不能用于 input 了,反而只能用于 div 一类的标签。

ezj 仍然使用 val 来对 input 和 div 等进行值的追加和插入。

ezj 中也有 append

前面提到了 jQuery 的 append,ezj 中也有 append 和 insert,还有 before、after。

相关文章