在 document.querySelector 中使用变量
Use variables in document.querySelector
如果我有:
<div class="test" data-name="Paul" >
和
var name = "Paul";
我可以使用document.querySelector
来做这样的事情吗?
document.querySelector("[data-name=name]");
这行不通。我必须做什么?
你可以这样做,但你需要使用 CSS.escape()
函数来确保值被正确编码以便在 CSS 表达式中使用。
var name = "hello, world!";
document.querySelector("[data-name=" + CSS.escape(name) + "]");
<div data-name="hello, world!">…</div>
ES2015: const name = "hello, world!";
document.querySelector(`[data-name=${CSS.escape(name)}]`);
如果不使用 CSS.escape(...)
则某些值 name
可能会导致代码引发错误。
var name = "hello, world!";
document.querySelector("[data-name=" + name + "]");
Uncaught DOMException: Failed to execute 'querySelector' on 'Document': '[data-name=hello, world!]' is not a valid selector
如果您的目标浏览器本身不支持CSS.escape()
您可以使用Mathias Bynens的这个polyfill。
您需要连接字符串,例如:
document.querySelector("[data-name=" + name + "]");
例如:
(请参阅@Jeremy银行的答案以获得更好的答案,tho(
var name = "Paul";
var element = document.querySelector("[data-name=" + name + "]");
alert(element.nodeName);
<div class="test" data-name="Paul">
test.
</div>
你也可以这样做
let name = 'Paul'
document.querySelector('.'+ name)
那么你不需要数据名称
这
在打字稿中有效:
document.querySelector('`[data-name=${name}]`)
<div class="test" data-name="Paul"></div>
尝试以这种方式它可能是有效的:-
var username = "Paul";
document.querySelector(`[data-name="${username}"]`);
我参加这个聚会太晚了,但请查看代码片段 - 它向您展示了如何获取 data-name 的当前值以及如何更改值
let test = document.querySelector('.test');
// get the current value of data-name
let name = test.dataset.name;
console.log('current value of data-name: ' + name)
// change the value of data-name
let newName = 'Jimmy'
console.log(test.dataset.name = newName);
<div class="test" data-name="Paul"></div>
相关文章:
- 在 document.querySelector 中使用变量
- 如何在不定义变量的情况下使用 document.createElement()
- 为什么我们被教导将document.getElementById(“id”)分配给一个变量,然后将该变量与属性一起使用
- document.getElementById,带有循环和本地与全局变量
- 想要使用document.getelementbyid显示两个变量
- 如何使用document.getElementById中的变量
- onclick使用document.getElementByID打开窗口传递变量
- 在document.getElementbyID中传递javascript变量
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- document.ready 中的全局 javascript 变量
- document.getElementById 不会设置变量
- 如何调用 Document.ready 内部的外部.js,方法是从 HTML 传入变量来调用下面的.js文件
- 让 JavaScript 写入变量而不是 document.write
- 将变量传递给JavaScript函数并在document.form中使用它
- 简单搜索结果页面:if/else 使用 localStorage 变量和 document.write 时出现问题
- Angular service/value 不会从 $(document).ready() 中获取新的变量
- 合并document.write javascript中的两个变量
- 如何在没有 document.write 的 HTML 页面中显示 JavaScript 变量
- document.getElementById作为xhtml中的一个变量
- JS使用变量作为document.getElementById的id不起作用