站长网_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: jQuery.clean使用方法及思路分析
搜索:
您的位置: 主页 > 教程 > 前端设计 > jQuery > » 正文

jQuery.clean使用方法及思路分析

来源: 易采站长站

一、jQuery.clean使用方法
jQuery.clean( elems, context, fragment, scripts );
二、思路分析
1、处理参数context,确保其为文档根节点document
2、处理参数elems数组(循环遍历数组)
  2.1、elem为数字,转换为字符串
  2.2、elem为非法值,跳出本次循环
  2.3、elem为字符串
  2.4、字符串不存在实体编号或html标签,则创建文本节点
  2.5、字符串为实体编号或html标签
代码如下:
创建一个div元素并插入到文档碎片中
 处理xhtml风格标签
 将elem包裹起来,并将包裹后的字符串作为div的innerHTML
 如果包裹深度大于1,只留下第一层包裹元素
 清除在ie6,7中空table标签自动加入的tbody
 将在ie9以下浏览器中剔除的开头空白字符串作为div元素的第一个文本子节点
 将elem重新赋值为div的子节点集合(nodeList对象),
 移除本次循环中文档碎片中的div,保持下一次循环中干净的div元素    

2.3、如果elem为文本节点,则直接添加到要返回的ret数组中,否则将elem(nodeList对象)中的节点合并到数组
  2.4、修复在ie6、7中type为radio,checkbox类型的节点的选中状态(checked)失效的bug
3、处理参数fragment
  3.1、将ret中各节点添加到文档碎片fragment中
  3.2、提取节点中的script子节点,并将其添加到ret数组中,添加的script位置为其原父元素位置后面
4、返回ret数组
三、源码注释分析
1、函数中用到的变量及函数
代码如下:
var nodeNames = “abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|” +
         “header|hgroup|mark|meter|nav|output|progress|section|summary|time|video”,
     wrapMap = {
         option: [ 1, “<select multiple=’multiple’>”, “</select>” ],
         legend: [ 1, “<fieldset>”, “</fieldset>” ],
         thead: [ 1, “<table>”, “</table>” ],
         tr: [ 2, “<table><tbody>”, “</tbody></table>” ],
         td: [ 3, “<table><tbody><tr>”, “</tr></tbody></table>” ],
         col: [ 2, “<table><tbody></tbody><colgroup>”, “</colgroup></table>” ],
         area: [ 1, “<map>”, “</map>” ],

最新图文资讯
1 2 3 4 5 6
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -