问题标签 [selectors-api]
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.
javascript - XPath 还是 querySelector?
XPath 可以做所有 querySelector 可以做的事情,甚至更多,那么你什么时候会选择后者呢?我还没有看到任何比较两者的速度基准,所以现在我根据语法简洁性进行选择,这似乎有点武断。
编辑:我可能应该说我正在为 Firefox 编写 Greasemonkey 脚本,所以我不担心跨浏览器的兼容性,并且宁愿不包含任何库。
jquery - :nth-of-type() 在 jQuery / Sizzle 中?
令我惊讶的是Sizzle(jQuery 使用的选择器引擎)带有一个内置的:nth-child()
选择器,但缺少一个:nth-of-type()
选择器。
:nth-child()
为了说明和之间的区别:nth-of-type()
来说明问题,请考虑以下 HTML 文档:
由于 Sizzle 使用浏览器原生querySelector()
和querySelectorAll()
方法(如果存在)(即在已经实现Selectors API$('body p:nth-child');
的浏览器中),当然可以使用类似的东西。但它在旧版浏览器中不起作用,因为 Sizzle 没有此选择器的后备方法。
是否可以轻松地将:nth-of-type()
选择器添加到 Sizzle,或者在 jQuery 中实现它(也许通过使用内置的:nth-child()
选择器)?带有参数的自定义选择器会很好。
css - 数据属性的 selectors-api
在 HTML5 中,CSS 选择器似乎可以很好地与 data-* 属性配合使用。例如:
将正确设置第一个 . 但是,尝试使用 selectors-api 选择此类元素会失败。例子:
或者
在 Chrome 和 Safari 中,这会产生一个神秘的错误:
SYNTAX_ERR:DOM 异常 12
关于如何使用 selectors-api 根据 data-* 属性正确选择元素有什么想法吗?
javascript - 所有浏览器都支持 querySelector 吗?
我想知道所有浏览器都支持querySelector吗?不是它可以使用什么替代品吗?
我已经用 IE8、FF3、Chrome 4 对其进行了测试。对我来说很好。我没有旧的浏览器。所以我想知道旧浏览器是否会给我带来问题?
javascript - 使用 Javascript 从复选框传递值
我正在构建一个简单的表单,我试图从复选框中传递值......
...使用此功能:
它工作正常,除了它同时传递所有值。
可以来帮我解决这个问题吗?
提前谢谢了
多姆
javascript - 为什么 querySelector('#id') 不映射到 document.getElementById('id')?
我最近进入了选择器的性能,document.getElementById
当一个简单#id
的被传递时,当前实现选择器 API 的浏览器不使用这让我很烦恼。
性能损失是巨大的,因此库作者继续以自己的方式实现这一点。
有任何想法吗?
javascript - 通过 JavaScript 更改 CSS 伪元素样式
是否可以通过 JavaScript 更改 CSS 伪元素样式?
例如,我想像这样动态设置滚动条的颜色:
而且我还希望能够告诉滚动条像这样隐藏:
然而,这两个脚本都返回:
未捕获的类型错误:无法读取 null 的属性“样式”
还有其他方法可以解决这个问题吗?
跨浏览器的互操作性并不重要,我只需要它在 webkit 浏览器中工作即可。
javascript - javascript addEventListener by querySelector 不起作用
嗨,这是我的 javascript 代码:
从这段代码中,除了“ads.addEventListener”倒数第二行之外,一切正常。是什么原因?我在这里做错了什么吗..?
我需要通过单击添加的广告类 div 来调用我的显示功能。
有人帮我吗?
javascript - 有没有办法让 querySelectorAll 只搜索元素的子元素,而不是所有子元素?
例如,如果我有一个文档片段:
(这是一个假设的文档。HTML 解析器实际上不会构造一个看起来像这样的 DOM。)
以及对最外层<div>
元素的引用,我想以某种方式outerDiv.querySelectorAll('p')
仅选择作为<p>
external 的直接子元素的元素<div>
。
我不能使用outerDiv.childNodes
和搜索<p>
元素,因为我实际上有一个比它长得多的选择器"p"
(例如,它可能看起来像"p > a > b"
)。我也无法控制 HTML,也无法使用 jQuery 或其他 JavaScript 库。
"div > "
预先添加到选择器并从中应用它也是不够的,outerDiv.parentNode
因为内部<p>
也匹配"div > p"
。
有没有一种干净的方法可以做到这一点,而不必自己解析 CSS 选择器,太多了?
javascript - querySelector 搜索直系子级
我有一些类似 jquery 的功能:
问题是我该如何做同样的事情querySelector()
?
问题是>
选择器querySelector()
需要明确指定父级。有什么解决方法吗?