素材牛VIP会员
如何用js取到元素的选择器字符串 ?
 sc***29  分类:JavaScript  人气:828  回帖:4  发布于6年前 收藏

比如

<div>
<ul>
   <li class="a"></li>
</ul>
</div>

点击li 用js获取该元素的选择器字符串 “div>ul>li.a” 类似于这样
如何实现? jquery的selector属性是取不到的。

一个参考方法

     function makeSelector(el) {
              var tag, index, stack = [];
            
              for (; el.parentNode; el = el.parentNode) {
                tag = el.tagName;
                if (tag != "HTML") {
                    index = $(el).prevAll().length + 1;
                    if (tag == "BODY"){
                      stack.unshift(tag);
                    }else{
                      stack.unshift(tag + ':nth-child(' + index + ')');                      
                    }
                }
              }            
              return stack.join(' > ');
    }
 标签:javascript

讨论这个帖子(4)垃圾回帖将一律封号处理……

Lv6 码匠
dg***26 软件测试工程师 6年前#1

通过一级一级往上判断parentNode或许可以

Lv5 码农
mi***02 学生 6年前#2

给你一个思路
event.target
element.parentNode

Lv2 入门
随***0 JAVA开发工程师 6年前#3

原生没有这样的功能,只能自己写一个。不停地遍历上层的parent元素直到body为止,至于“div>ul>li.a”这样的字符串,自己从DOM对象取出来拼就好了

Lv5 码农
阿***d 交互设计师 6年前#4
document.querySelector('div ul li.a');
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取