当前位置: 首页 > news >正文

大连龙采做网站seo基础

大连龙采做网站,seo基础,网站建设技术支持包括哪些,wordpress收费视频一、发现bug的过程 今天同事在使用我做的js表单验证控件时,发现当表单中存在一个name为nodeType的input时,验证组件就不好用了。经简单测试发现$(form :input)根本选择不到一个元素,心想这肯定是jquery的bug了。 二、分析bug 然后就打开jquer…

一、发现bug的过程

今天同事在使用我做的js表单验证控件时,发现当表单中存在一个name为nodeType的input时,验证组件就不好用了。经简单测试发现$('form :input')根本选择不到一个元素,心想这肯定是jquery的bug了。

二、分析bug

然后就打开jquery的源码粗略看了一下,发现里里边好多好多的代码都关系着nodeType的属性,这让我如何下手呢?这可是将近一万行的代码。泪奔呀。。。

随便打几个断点试试吧,无效无效。。。。心中那个纠结那个郁闷。。。

无意间发现了代码里这样一行注释。

/*!
* Sizzle CSS Selector Engine v1.9.4-pre
* http://sizzlejs.com/
*
* Copyright 2013 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2013-05-27
*/

  

心想我的这个问题肯定就是css选择器的问题,从这里下手肯定是对的。

然后去这个地址下载了sizzle.js,发现这个选择器问题在这里也是存在的。心中窃喜。然后就一点点调试找到了问题的根源。

发现的问题是什么呢?

就是当form表单里如果有一个 nodeType这样的一个input时,$('form')[0].nodeType 不等于1了,他的值是这个input对象。

三、解决bug

最后修改代码 

if ( elem.nodeType === 1 || checkNonElements ) {

修改为

if ( (elem.nodeType === 1 || typeof elem.nodeType != "number") || checkNonElements ) {

(共有三处)

修改后发现Sizzle('form :input')好用了,对应地修改jquery里的 ,$('form :input')好用了。

但是悲催的是我的验证控件还是不好用。测试发现是因为$('form').find(':input')不好用造成的。心想难道还必须调试jquery的源码吗?心灰意冷了。真的想放弃了。刚才的喜悦与成就感没了。。。。。。

上网上又随便地查一些资料,查一些别人对jquery源码的剖析等,发现问题肯定还是出在Sizzle里,并悟出了find的方法应该就是Sizzle(':input',Sizzle( 'form ')[0])  ,测试发现我修改后的代码使用这种表达式依然不好用。(Sizzle中没有find的方法)

然后基于这个表达式进行测试,修改了另一处代码:

if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {

替换为:

if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 && (typeof context.nodeType === "number")) {

大功告成。

以上修改方案仅为个人修改意见,并不能保证不会引发其它bug, 如君真要使用,请慎重。

 

本文为作者原创,转载请注明出处,与你分享我的快乐
http://www.cnblogs.com/weirhp

 

转载于:https://www.cnblogs.com/weirhp/archive/2013/06/06/3121688.html

http://www.lbrq.cn/news/2678689.html

相关文章:

  • 专业的网站建设科技公司杭州seo价格
  • 如何给网站做排名竞价推广工具
  • 怎么找做网站的公司百度信息流广告怎么收费
  • 公司logo设计图片免费杭州seo中心
  • 做插画的网站seo基础入门免费教程
  • 网站高防空间考拉seo
  • 用建站ABC做的网站 怎么营销最强大的搜索引擎
  • 做网站的时候说需求的专业术语推广渠道有哪些平台
  • 兰州专业网站建设公司哪家好怎么上百度搜索
  • 游戏网址大全有哪些百度首页排名优化多少钱
  • 网站开发的书百度一下你就知道官网下载安装
  • 盐城网站建设网站制作推广百度极速版推广
  • 外贸网站需要多少个语言厦门seo哪家强
  • 微信网站模板源码下载网站排名工具
  • 响应式网站建设对企业营销太原网站优化
  • 网站美工工作流程性价比高seo排名
  • 北京建设网站中国旺旺(00151) 股吧
  • 广州澄网站建设公司如何做网站seo排名优化
  • 智慧城市展厅设计公司购买seo关键词排名优化官网
  • 怎么做电视台网站怎样创建网站
  • 做网站专业术语视频号推广方法
  • 网站建设调查内容有哪些推广营销网络
  • 国外做问卷调查的网站手机优化助手
  • 一级做爰网站深圳关键词排名优化系统
  • 网站开发框架系统免费个人网页制作
  • 178网站建设网站优化名词解释
  • wordpress更改中文版后还是英文优化关键词的作用
  • 高水平高职院校 建设网站徐州seo招聘
  • 好学校平台网站模板合肥百度关键词推广
  • 做一级域名网站多少钱专注网络营销推广公司
  • 解释 Spring MVC 的工作原理
  • 11. React组件插槽用法
  • 在 Ubuntu 中docker容器化操作来使用新建的 glibc-2.32
  • macOS 搭建 Gitea 私有 Git 服务器教程
  • [激光原理与应用-223]:机械 - 机加厂加工机械需要2D还是3D图?
  • Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)