Point-n-Click JQuery选择器生成器?

时间:2011-12-17 13:03:46

标签: javascript jquery css

是否有任何插件或其他工具可以让我指向网页上的元素并返回jquery(或css)选择器查询?

我正在寻找非技术人员可以使用的东西,以便他们可以“突出显示”页面项目,然后获取适当的jquery语句以“正确”导航到该元素 - 存在的任何东西对此?

4 个答案:

答案 0 :(得分:4)

Firefox的Firebug和Chrome的检查工具都具有此功能。只需右键单击 - >检查,它就会列出一个CSS选择器结构。

答案 1 :(得分:1)

http://selectorgadget.com

https://chrome.google.com/webstore/detail/selectorgadget/mhjhnkcfbdhnjickkkdbjoemdmbfginb

  

SelectorGadget是一个开源工具,可以创建CSS选择器   在复杂的站点上生成和发现轻而易举。只需安装   Chrome扩展程序或将书签拖到书签栏,   然后转到任何页面并启动它。右下方会打开一个方框   的网站。单击您想要的页面元素   选择器匹配(它将变为绿色)。然后SelectorGadget   为该元素生成一个最小的CSS选择器,并将突出显示   (黄色)选择器匹配的所有内容。现在点击一下   突出显示要从选择器中删除它的元素(红色),或单击   一个未突出显示的元素,将其添加到选择器。通过这个   选择和拒绝的过程,SelectorGadget可以帮助你挺身而出   使用完美的CSS选择器满足您的需求。

     

我怎么能用这个?

     
      
  1. 使用Nokogiri和Beautiful Soup等工具进行网页抓取

  2.   
  3. 为动态网站生成jQuery选择器

  4.   
  5. 作为检查JavaScript生成的DOM结构的工具

  6.   
  7. 作为一种工具,可帮助您仅设置页面上的特定元素的样式   你的样式表

  8.   
  9. 用于硒或幻影测试

  10.         

    由Andrew Cantino和Kyle Maxwell创建。你可以找到当前的   GitHub上的版本,请随时留下评论。

答案 2 :(得分:0)

这是你想要的吗?

更新了,它可能不是最好的解决方案,但我很饿^ __ ^:

var root = document.body;
var listen = function(element, evt, func){
    if(element.addEventListener)
        element.addEventListener(evt, func, false);
    else if(element.attachEvent)
        element.attachEvent('on'+evt, func);
};

var buildchain = function(element, chain){
    if(element == document.body){
        return true;
    }
    else if(element.id != ""){
        chain.push("#" + element.id);
        return true;
    }
    else if(element.className != "")
        chain.push("." + element.className);
    else
        chain.push("" + element.tagName);
    buildchain(element.parentNode, chain);
}

var buildstring = function(){
    var str = "$('" + chain[chain.length-1] + "')";
    for(var i = chain.length-2; i >= 0; i--){
        str += (".children('" + chain[i] + "')");
    }
    return str;
}
listen(root, 'click', function(evt){
    chain = [];
    buildchain(evt.target, chain);
    var s = buildstring();
    alert(s);
});

答案 3 :(得分:0)

如果您不想使用jquery并需要选择器与document.querySelector()一起使用,我会进行一些修改

const root = document.body;
const listen = function(element, evt, func){
    if(element.addEventListener)
        element.addEventListener(evt, func, false);
    else if(element.attachEvent)
        element.attachEvent('on'+evt, func);
};

const buildchain = function(element, chain){
    if(element == document.body){
        return true;
    }
    else if(element.id != ""){
        chain.push("#" + element.id);
        return true;
    }
    else if(element.className != ""){
        let strclass = ""
        element.className.split(" ").map((value) => {
            if (value) {
                strclass += "." + value
            }
        })
        chain.push(strclass);
    }
    else {
        chain.push("" + element.tagName);
    }
    buildchain(element.parentNode, chain);
}

var buildstring = function(){
    let str
    if (chain[chain.length-1]) {
        str = chain[chain.length-1];
    }
    for(let i = chain.length-2; i >= 0; i--){
        if (chain[i]) {
            str += (" " + chain[i]);
        }
    }
    return str;
}
listen(root, 'click', function(evt){
    chain = [];
    buildchain(evt.target, chain);
    var s = buildstring();
    alert(s);
});