一尘不染

获取元素的CSS选择器(如果没有ID)

javascript

我正在尝试通过JavaScript /
CSS修改页面(很像Fashiony或Greasemonkey一样)。这是一个非常复杂的页面(我没有构建或无法修改预渲染),这使得构造CSS选择器变得很困难(手动查看文档结构)。我该如何实现?


阅读 500

收藏
2020-05-01

共1个答案

一尘不染

在安装了FireBug的情况下使用FireFox。

  • 右键单击任何元素
  • 选择“检查元素”
  • 右键单击HTML树中的元素
  • 选择“复制XPath”或“复制CSS路径”

此答案的永久链接的输出(XPath):

/ html / body / div [4] / div [2] / div [2] / div [2] / div [3] / table /
tbody / tr / td [2] / table / tbody / tr / td / div /一个

CSS路径:

html body.question-page div.container div#content div#mainbar div#answers
div#answer-4588287.answer表tbody tr td table.fw tbody tr td.vt div.post菜单a


但是关于这个评论:

我的最终目的是为对象创建一个CSS选择器…

如果这是您的意图,那么可能有一种更简单的JavaScript方法:

var uniquePrefix = 'isThisUniqueEnough_';
var counterIndex = 0;
function addCssToElement(elem, cssText){
    var domId;
    if(elem.id)domId=elem.id;
    else{
        domId = uniquePrefix + (++counterIndex);
        elem.id = domId;
    }
    document.styleSheets[0].insertRule("#"+domId+"{"+cssText+"}");
}

对于不同的浏览器,最后一行可能需要不同地实现。没有测试。

2020-05-01