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