有没有办法使用querySelector
或进行通配符元素名称匹配querySelectorAll
?我在属性查询中看到了对通配符的支持,但对于元素本身却没有.
我试图解析的XML文档基本上是一个扁平的属性列表,我需要找到名称中包含某些字符串的元素.
我意识到如果我需要这个XML文档可能需要重组,但这不会发生.
除了回到使用明显弃用的XPath(IE9丢弃它)之外的任何解决方案都是可以接受的.
我正在尝试使用document.querySelectorAll
具有value
属性集的所有复选框.
页面上还有其他没有value
设置的复选框,每个复选框的值都不同.但是ID和名称并不是唯一的.
例:
<input type="checkbox" id="c2" name="c2" value="DE039230952"/>
如何仅选择已设置值的复选框?
我有一些类似jquery的功能:
function(elem) {
return $('> someselector', elem);
};
Run Code Online (Sandbox Code Playgroud)
问题是我怎么能这样做querySelector()
?
问题是>
选择器querySelector()
要求明确指定父级.有没有解决方法?
根据我的理解,HTML5规范允许您使用像这样的数字的ID.
<div id="1"></div>
<div id="2"></div>
Run Code Online (Sandbox Code Playgroud)
我可以使用getElementById
但不能使用这些querySelector
.如果我尝试执行以下操作,我会在控制台中获得SyntaxError:DOM Exception 12.
document.querySelector("#1")
Run Code Online (Sandbox Code Playgroud)
我只是好奇为什么querySelector
当HTML5规范说这些有效时,使用数字作为ID不起作用.我试过多个浏览器.
如何找到某些文字的DIV?例如:
<div>
SomeText, text continues.
</div>
Run Code Online (Sandbox Code Playgroud)
试着用这样的东西:
var text = document.querySelector('div[SomeText*]').innerTEXT;
alert(text);
Run Code Online (Sandbox Code Playgroud)
但是当然它不起作用.我该怎么做?
我在DOM中有一个元素:
<a href="#" data-a="1">Link</a>
我想通过其HTML5自定义数据属性获取此元素data-a
.所以我写JS代码:
var a = document.querySelector('a[data-a=1]');
但是这段代码不起作用,我在浏览器的控制台中出错了.(我测试了Chrome和Firefox.)
JS代码var a = document.querySelector('a[data-a=a]');
不会导致错误.所以我认为问题是HTML5的JS API document.querySelector
不支持在HTML5自定义数据属性中查找数值.
这是浏览器实现错误或HTML5规范相关问题document.querySelector
吗?
然后我在http://validator.w3.org/上测试了以下代码:
<!DOCTYPE html>
<meta charset="utf-8">
<title>An HTML Document</title>
<a href="#" data-a="1">Link</a>
Run Code Online (Sandbox Code Playgroud)
他们已经过验证.由于这些HTML5代码已经过验证.我们应该使用HTML5的JS API document.querySelector
通过其自定义数据属性来查找此锚元素.但事实是我得到了错误.
HTML5对HTML5 JS API的规范是否document.querySelector
说该方法无法查找具有数值的HTML5数据自定义属性?(需要HTML5规范源.)
javascript html5 css-selectors selectors-api custom-data-attribute
是否可以通过JavaScript更改CSS伪元素样式?
例如,我想动态设置滚动条的颜色,如下所示:
document.querySelector("#editor::-webkit-scrollbar-thumb:vertical").style.background = localStorage.getItem("Color");
Run Code Online (Sandbox Code Playgroud)
而且我也希望能够像这样告诉滚动条隐藏:
document.querySelector("#editor::-webkit-scrollbar").style.visibility = "hidden";
Run Code Online (Sandbox Code Playgroud)
但是,这两个脚本都返回:
未捕获的TypeError:无法读取null的属性'style'
还有其他方法可以解决这个问题吗?
跨浏览器的互操作性并不重要,我只需要它在webkit浏览器中工作.
他看起来像是一个快速回答的东西,但我找不到一个.也许我在搜索错误的条款?没有图书馆,虽然我不需要跨浏览器的后备,但我的目标是该项目的所有最新版本.
我得到了一些元素:
element = document.querySelectorAll(".someselector");
Run Code Online (Sandbox Code Playgroud)
YEY!
如何删除这些元素?我错过了什么?我是否必须遍历它们并做这element.parentNode.removeChild(element);
件事,或者是否有一个我缺少的简单功能?
在我正在做的页面上,我将以这样的自定义link
元素结束:
<link rel="multiply" type="service/math" src="path/to/service">
<link rel="substract" type="service/math" src="path/to/service">
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用指定querySelectorAll
类型检索所有链接元素service/...
并且无处可去.
目前我选择这个:
root.querySelectorAll('link');
Run Code Online (Sandbox Code Playgroud)
<link>
当我只想要有类型的那些时,它给了我所有的元素service/.*
问题:
我可以在QSA选择器中添加正则表达式吗?如果是这样,怎么办?
我正在尝试制作一个适用于多个页面的js代码.我正在尝试使用querySelectorAll()从DOM中获取元素.
我需要订购的元素.为了做到这一点,我可以使用xPath或选择器(我更喜欢使用选择器,但xPath也可以).问题是:
querySelectorAll()返回的NodeList中的元素是否按照标记在HTML中出现的顺序排序?
注意:我想添加标签:querySelectorAll
javascript ×10
selectors-api ×10
css ×2
html5 ×2
dom ×1
domparser ×1
element ×1
hyperlink ×1
innertext ×1
regex ×1