从CSS到Javascript的属性值
An attribute value from CSS to Javascript
有一种方法可以在CSS中选择特定的数据,如下所示:
td[data-cell|="n"] {
background-color: red;
margin-top: 10px;
...
}
其中n
-是td's data-cell
属性的开头。
如何在Javascript中使用这个选择器的组合?因为JS会将其识别为数组并返回Error。
所有现代浏览器都支持querySelector()用于单个元素,querySelectorAll()用于元素数组。传递给这些函数的参数是一个CSS选择器。因此,您的选择器将保持不变。
var firstTD = document.querySelector('td[data-cell|="n"]');
或
var firstTD = document.querySelectorAll('td[data-cell|="n"]')[0];
querySelectorAll与ES6、5或任何其他ECMAScript无关。-dfsq
谢谢你指出这一点。出于某种原因,我认为它依赖于ES6。相反,它是Web API的一部分,它是为现代浏览器本机实现的。
为了向后兼容,您可以使用选择器库,例如jQuery。
var firstTD = $('td[data-cell|="n"]')[0]; // or .eq(0)
^与|=-Juhana 不是一回事
我完全同意。这条线把我甩了…
其中n-是td的数据单元格属性的开头。-Alexandr Belov
由于不知道data-cell
的值是什么形式,我不确定他是否想要一个真正的"开始"。要获得一个真正的"开始于",您需要^=
。
来自w3-css选择器规范:
[att|=val]
表示具有att属性的元素,其值要么完全是"val",要么立即以"val"开头然后是"-"(U+002D)。
或者,您可以使用数据集属性访问DOM元素的数据属性:
document.querySelectorAll('td').forEach(function(obj, idx, arr) {
// simulate '|=' filter
if(obj.dataset.cell &&
(obj.dataset.cell === "n" ||
obj.dataset.cell.startsWith("n-"))) {
alert(obj.dataset.cell);
}
});
相关文章:
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误