IE7中的奇怪问题只在其他任何浏览器中都没有
这是一个简单的HTML,
我有jquery-ui(1.10)和jquery(1.9.1)。 它在IE8,9,firefox和Chrome中仅适用于IE 7
HTML有类似下面的内容。 我不知道那是什么,它来自哪里
当我在IE8,9,Firefox和Chrome中看到这个HTML时,这段代码就不存在了
sizzle-1367496452938="[object Object]
以及注入的所有div标签
jQuery191030626454110549073="6"
这里有一些html看起来像这样。任何人都知道这是什么问题?
UPDATE
我没有使用sizzle javascript选择器库
这是jQuery用于在IE中附加事件处理程序等的内容。
它被称为expando。 它只是一个字符串,基本上是’jQuery’+时间戳(本质上是一个唯一值)。
jQuery取决于sizzle所以你肯定使用它….
你可以在这里阅读更多: jQuery属性自动添加到元素
经过一番研究, 这回答了我的问题100%
我只是从上面的博客复制粘贴
jQuery如何使用Sizzle选择元素
选择过程
jQuery已经进行了大量优化以使事情运行得更快。 在本节中,我将介绍一些查询,并尝试跟踪jQuery遵循的路由。
$( ‘#头’)
当jQuery看到输入字符串只是一个单词并且正在查找id时,jQuery会调用document.getElementById。 直接而简单。 没有调用Sizzle。
现代浏览器上的$(’#header a’)
如果浏览器支持querySelectorAll,则querySelectorAll将满足此请求。 没有调用Sizzle。
在现代浏览器上$(’。header a [href!=“hello”]’)
在这种情况下,jQuery将尝试使用querySelectorAll但结果将是一个exception(至少在firefox上)。 浏览器将抛出exception,因为querySelectorAll方法不支持某些选择条件。 在这种情况下,当浏览器抛出exception时,jQuery会将请求传递给Sizzle。 Sizzle不仅支持css 3选择器,而且还超越了它。
IE6 / 7上的$(’。header a’)
在IE6 / 7上,querySelectorAll不可用,因此jQuery会将此请求传递给Sizzle。 让我们详细了解Sizzle将如何处理此案例。
Sizzle获取选择器字符串’.header a’。 它将字符串分成两部分并存储在变量被称为部分中。
1个部分= [‘.header’,’a’]下一步是将Sizzle与其他选择器引擎区分开来的步骤。 Sizzle首先从最外层的选择器字符串开始,而不是首先查找具有类头的元素然后向下。 根据保罗爱尔兰YUI3和NWMatcher的演示也从右到左。