javascript - 当它存在于 DOM 中时,querySelector 返回 'Failed to execute div is not a valid selector'
问题描述
当我从代码运行“div ID”时,我遇到了一个问题。
但是,当我document.querySelector('#div-gpt-ad\\/1594654184865-0>div')
返回正确的 div ID 时。错误截图:https ://gyazo.com/a7f1898f246bd84f28e85c2052ac60eb
div id在执行代码前已经存在于页面上,renderDiv函数中的console.log返回
这是我要执行的代码:
var slots = window.top.googletag.pubads().getSlots();
init(slots);
function init(slots) {
for (let i = 0; i < slots.length; i++) {
renderDiv(slots[i]);
}
}
function getSelectors(slot) {
var escapeCheck = slot.getSlotElementId();
if(escapeCheck.includes('/')){
let placeHold = escapeCheck.replace(/\//g, '\\\\/');
return "#" + placeHold + ">div" ;
} else{
return "#" + escapeCheck + ">div";
}
}
function renderDiv(slot) {
let selector = getSelectors(slot);
console.log("Selector:" + selector)
document.querySelector(selector)
}
解决方案
固定的!
改为let placeHold = escapeCheck.replace(/\//g, '\\\\/');
_
let placeHold =escapeCheck.replace(/\//g, "\\/").replace(/\./g, "\\.");
我还不太明白的是为什么第一个不起作用,因为正在通过的字符串是正确的
推荐阅读
- java - 无法沿 x 轴 itextpdf 定位第二个 ColumnText
- html - 将年份值限制为只有 4 位数字
- java - 为什么使用Guice时Java中@Singleton的@Inject总是导致null?
- reactjs - reactjs在渲染方法中从数组中删除元素
- c# - 使用 Entity Framework 和 ASP.Net 更新 SQL Server 中的数据库记录
- python - Keras 中的 load_model 和 Lamda 层
- mongodb - 如何使用 Date.now 格式获取两个日期之间的数据
- android-layout - 各种状态的 TextInputLayout 提示颜色
- ruby-on-rails - 如何在 ActiveModel:Serializer 中调用对象
- javascript - 从表单文本输入字段中删除最后四个字符