javascript - querySelector 中的 Javascript Varialbe 返回 null
问题描述
我无法让变量在 querySelector 中工作。我有一个这样的链接:
<a class="ast-linkto linkto-howitworks">Click to Scroll</a>
在页面的下方有这样的部分:
<section id="howitworks">
Content here.
</section>
这是导致问题的功能的一部分。console.log 工作正常,它在控制台中记录 linkToTargetId #howitworks
,所以没问题。但我做不到document.querySelector(linkToTargetId)
,如果我尝试以任何方式将该变量括在引号中,我会收到一个错误,指出它不是有效的选择器。我知道我错过了一些简单的东西。document.querySelector("#howitworks").innerHTML
确实返回了预期的结果,所以它不像#howitworks 不存在。
document.querySelectorAll('.ast-linkto').forEach(function(item) {
var regx = new RegExp('\\b' + 'linkto-' + '[^ ]*[ ]?\\b', 'g');
var linkToTargetClass = item.className.match(regx, '')[0];
var linkToTargetId = '#' + linkToTargetClass.substring(linkToTargetClass.indexOf("-") + 1);
console.log(linkToTargetId);
/* Please let one of these work! */
console.log(document.querySelector(linkToTargetId).innerHTML);
console.log(document.querySelector("'"+linkToTargetId+"'").innerHTML);
这是一个片段:
document.querySelectorAll('.ast-linkto').forEach(function(item) {
var regx = new RegExp('\\b' + 'linkto-' + '[^ ]*[ ]?\\b', 'g');
var linkToTargetClass = item.className.match(regx, '')[0];
var linkToTargetId = '#' + linkToTargetClass.substring(linkToTargetClass.indexOf("-") + 1);
console.log(linkToTargetId);
/* Please let one of these work! */
console.log(document.querySelector(linkToTargetId).innerHTML);
console.log(document.querySelector("'" + linkToTargetId + "'").innerHTML);
})
<a class="ast-linkto linkto-howitworks">Click to Scroll</a>
<section id="howitworks">
Content here.
</section>
解决方案
想通了一些东西:
document.querySelectorAll('.ast-linkto').forEach(function(item) {
var regx = new RegExp('\\b' + 'linkto-' + '[^ ]*[ ]?\\b', 'g');
var linkToTargetClass = item.className.match(regx, '')[0];
var linkToTargetId = '#' + linkToTargetClass.substring(linkToTargetClass.indexOf("-") + 1);
console.log(linkToTargetId);
item.addEventListener('click', function(event) {
console.log(document.querySelector("" + linkToTargetId + "").innerHTML);
})
});
无论如何,单击这些链接是主要思想,因此在单击功能中添加 console.log 是可行的!
推荐阅读
- django - 如何使用基于类的视图在 Django 中的一个模型的不同模板上显示不同的结果?
- react-native - 在 React Native 上使用 Apple Pay?
- mysql - SQL 查询:遍历具有相同值的行并计算出现次数
- vb.net - System.InvalidCastException '从字符串 "" 到类型 'double' 的转换无效'
- html - 如何对齐表单输入
- java - 我们在 Spring Boot 应用程序中是否有调度程序 servlet?
- android - 将片段(或适当的组件)动态添加到 Android App (Kotlin) 中的列表视图
- java - 如何在java中获取文件的绝对路径
- linux - 什么是根 CGROUP?
- java - 如何使用javafx将数据从数据库加载到tableview