问题标签 [sizzle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
470 浏览

jquery - 使用 Sizzle 解析 XML 文件?

我创建了一个库,用于从一组使用 jQuery 的 XML 文件中解析和提取信息。所以做这样的事情很简单:

然后我意识到我的小库不应该依赖于所有的 jQuery,而且我可能只使用 Sizzle 库就可以获得我想要的东西,因为这就是 jQuery 的 .find 方法的来源。但是,我一出门就遇到了麻烦。

Sizzle 似乎没有 parseXML 函数。有没有办法传入一大段 XML 文本并取回可以搜索的对象?

我注意到您可以将上下文传递给 Sizzle 的 find 函数。但是,Sizzle.find(".title", xmlText) 找不到任何东西。

有任何想法吗?是否可以像上面使用 jQuery 一样使用 Sizzle 解析 XML?

注意:我希望能够以无头方式或在 Node 上运行它,所以我不想使用像 DOMParser 这样的浏览器依赖项。

0 投票
2 回答
2305 浏览

javascript - 带有原型的多个 CSS 选择器

我正在重构一些目前看起来像这样的代码:

我想切换初始选择器并检查 ID 到单行,沿着这些行:

虽然多个选择器不起作用,但每个选择器本身都可以正常工作。不确定这是语法问题还是原型文档所说的应该有效,但是一旦我添加了额外的选择器,就没有任何效果。

要确认这有效:

这有效:

但这无法选择(没有抛出错误)

0 投票
0 回答
93 浏览

attributes - 嘶嘶声可以返回没有任何属性的元素吗?

我正在尝试使用嘶嘶声查询从网页中提取没有属性的元素。

我可以通过指定它的属性轻松地返回一个元素。例如: doc.Tables.Filter(Find.BySelector("[ID='abc']")) 返回 ID='abc' 的元素

有没有办法返回所有没有任何属性的元素?这就是我的目标: doc.Tables.Filter(Find.BySelector("[]")) 'return all element with no attributes 感谢 Ken

0 投票
1 回答
1263 浏览

javascript - jQuery 1.5.1 Sizzle 'cannot read property nodename' child '>' selector with knockoutjs

我正在使用 jQuery 1.5.1 和 Knockoutjs 2.0.0。我的情况有点复杂,但据我了解,这就是正在发生的事情:

我有一些绑定到 Knockoutjs 的元素也有 jQuery.live 绑定。其中一些绑定包含子(父?)选择器“>”。当我删除元素(使用 Knockout)时,我收到此错误:

未捕获的类型错误:无法读取 null 的属性“nodeName”

由 jQuery 中的以下代码引发:

似乎 Knockout 在 jQuery 开始检查实时绑定之前从文档中删除元素,因此当最终检查元素时,它的父元素为空,并引发此错误。

我的问题:

人们会在哪里/如何建议我解决这个问题?我在想这样的事情:

如果父级为空,似乎“>”选择器应该失败,但我可能错了。你们会怎么做?

更新:

JSFiddle 演示了该问题(尝试删除表格行):

仅当我将以下选择器之一用于我的 .live 绑定时,才会发生这种情况。在 :not 选择器中只使用一个类会导致错误消失。

0 投票
3 回答
110 浏览

regex - 这是什么意思?使用表达式将匹配什么字符串?

我检查了嘶嘶声代码并查看了定义。

我想知道如何找出这个正则表达式匹配的字符串?

0 投票
1 回答
441 浏览

javascript - 使用 Sizzle 选择缓存节点的子元素

有谁熟悉 Sizzle 吗?是否支持选择缓存 DOM 节点的子节点?像 jQuery:

10 倍的帮助,BR

0 投票
3 回答
1019 浏览

javascript - 我可以强制 jQuery 使用 Sizzle 来评估选择器而不使用非标准选择器吗?

在现代浏览器中,当使用有效的 CSS 选择器时,jQuery 会利用document.querySelectorAll()来提高性能。document.querySelectorAll()如果浏览器不支持选择器或方法,它会退回到 Sizzle 。

但是,在调试自定义选择器时,我希望始终使用 Sizzle 而不是本机实现。也就是说,我正在尝试实现jQuery 不支持的 CSS3 选择器:nth-last-child()之一。由于现代浏览器原生支持此选择器,因此它的工作原理与链接问题中的描述相同。不过,正是这种行为干扰了我的自定义选择器的调试,所以我想避免它。

我可以使用的一个便宜的技巧是放入一个非标准的jQuery 选择器扩展,从而可以说“使”选择器“无效”。例如,假设 every li:nth-last-child(2)is visible,我可以简单地将其放入,将其转为:

进入这个:

这导致它始终由 Sizzle 评估。除此之外,这要求我对我的页面元素做出一个假设,这可能是真的,也可能不是。我真的不喜欢那样。更不用说,除非绝对必要,否则我一般不喜欢使用非标准选择器。

有没有办法跳过document.querySelectorAll()支持它的浏览器中的本机方法并强制 jQuery 使用 Sizzle 来评估选择器,最好使用非标准选择器?很可能,这需要调用另一个方法而不是$(),但它比选择器黑客 IMO 好得多。

0 投票
4 回答
32230 浏览

jquery - jQuery 语法错误,无法识别的表达式:[name=Basics.Gender]

我正在从 jQuery 1.4.4 升级到 jQuery 1.7.2,我得到一个语法错误。我认为这是由于'。在选择器的 Basics.Gender 部分中。

有人对如何解决这个问题有任何建议吗?

http://jsfiddle.net/2nBc9/

编辑

任何人都知道为什么“。” 现在打破选择器语法?他们是在 Sizzle 中使用正则表达式还是其他东西?还是将属性放在引号中一直是最佳做法?

0 投票
1 回答
9170 浏览

jquery - 如何修复 jQuery 1.8 “不支持的伪”错误?

我正在使用的插件依赖于$(':animated'),但由于我升级到 jQuery 1.8.0,这会引发错误:

未捕获的错误:语法错误,无法识别的表达式:不支持的伪:动画

作为 Sizzle 更改的一部分,jQuery 1.8.0 是否放弃了对这个自定义选择器的支持?我该如何解决?

0 投票
2 回答
6791 浏览

jquery - 无法识别的表达式: :[type=checkbox] with jQuery 1.8

我将代码更新为 jQuery 1.8 并开始收到此错误:

当然这是说:[type=checkbox]新版本的jQuery无法识别该表达式,我的问题是:

我输入的方式错误,或者它是一个错误

我已经在 jsFiddle http://jsfiddle.net/4y8tb/6/上制作了这个版本进行测试,打开控制台查看日志,如果您更改 jQuery 版本,您会看到一个可以工作,一个不能工作。

我尝试了其他一些语法(如:[type="checkbox"])但失败了。