如何存储参考DOM元素以供以后使用

里顿

我在一个网站上,我点击任何元素并对其进行操作

document.addEventListener('click', function(e){
  e.target.innerHTML = `<span style="background: red">${e.target.innerText}</span>`
})

如何存储对单击元素的引用?

我想存储对数据库的引用,以便在重新加载页面时,将完全相同的元素包装在span标记中。

Jaromanda X

尚未经过全面测试,但是可以替代构建DOM中任何给定节点的querySelector字符串值中的代码

注意:该代码假定使用格式正确的HTML,即唯一ID-不幸的是,网络上到处都是垃圾页面,这些页面具有非唯一ID,因此该代码将失败

结果可能是一个比上面的代码更长的选择器,但它似乎可行-我还没有打破它:p

function getCSSPath(el) {
    const fullPath = [];
    const fn = el => {
        let tagName = el.tagName.toLowerCase();
        let elPath = '';
        if (el.id) {
            elPath += '#' + el.id;
        }
        if (el.classList.length) {
            elPath += '.' + [...el.classList].join('.');
        }
        if (el.parentElement) {
            if (el.previousElementSibling || el.nextElementSibling) {
                let nthChild = 1;
                for (let e = el.previousElementSibling; e; e = e.previousElementSibling, nthChild++);
                tagName += `:nth-child(${nthChild})`;
            }
            fn(el.parentElement);
        }
        fullPath.push(tagName + elPath);
    };
    fn(el);
    return fullPath.join('>');
}

我认为这是上面的更好的版本:

function getCSSPath(el) {
    let elPath = el.tagName.toLowerCase();
    if (el.parentElement && (el.previousElementSibling || el.nextElementSibling)) {
        let nthChild = 1;
        for (let e = el.previousElementSibling; e; e = e.previousElementSibling, nthChild++);
        elPath += `:nth-child(${nthChild})`;
    }
    if (el.id) {
        elPath += '#' + el.id;
    }
    if (el.classList.length) {
        elPath += '.' + [...el.classList].join('.');
    }
    return (el.parentElement ? getCSSPath(el.parentElement) + '>' : '') + elPath;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Bash数组中添加元素以供以后打印

如何存储缩放参数以供以后使用

如何存储Format-Table的输出以供以后使用

如何随时存储有效负载以供以后使用

存储snprintf参数以供以后使用

存储用户名以供以后使用

如何报告异常以供以后使用

如何在网页中存储MySQL值以供以后使用

如何存储Future <dynamic>数据以供以后在dart / Flutter中的程序中使用?

如何腌制或存储Jupyter(IPython)笔记本会话以供以后使用

如何存储已在命令行中键入的文本以供以后使用?

在R中,如何存储插图以供以后使用grid.arrange进行排列?

存储 SQL 表中的变量以供以后使用 PHP 使用

如何最好地存储Python对象以供以后评估?

如何存储关闭完成处理程序以供以后调用?

Ruby C扩展如何存储proc以供以后执行?

无法存储简单的powershell变量以供以后在脚本中使用

将类型存储在变量中以供以后使用

将Action <T>存储在单个集合中以供以后使用

Bash脚本:存储awk字段以供以后使用

存储对象以供以后编写函数时使用

Python-存储函数定义以供以后使用

jQuery JSON ajax结果存储以供以后使用

VB6-加载/存储图像以供以后使用

如何将while循环中生成的值存储到变量中以供以后在JQuery中使用

如何使用Python登录网页并检索Cookie以供以后使用?

如何在bash中保存功能以供以后使用?

如何嵌入文件以供以后解析执行使用

如何在会话中保存SQL查询以供以后使用