鍍金池/ 問答/HTML/ 如何用js取到元素的選擇器字符串 ?

如何用js取到元素的選擇器字符串 ?

比如

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

點擊li 用js獲取該元素的選擇器字符串 “div>ul>li.a” 類似于這樣
如何實現(xiàn)? 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(' > ');
    }
回答
編輯回答
故人嘆

原生沒有這樣的功能,只能自己寫一個。不停地遍歷上層的parent元素直到body為止,至于“div>ul>li.a”這樣的字符串,自己從DOM對象取出來拼就好了

2018年2月6日 13:00
編輯回答
尐飯團(tuán)

給你一個思路
event.target
element.parentNode

2018年6月5日 16:29
編輯回答
愚念

通過一級一級往上判斷parentNode或許可以

2017年2月26日 21:46
編輯回答
笑忘初
document.querySelector('div ul li.a');
2018年1月5日 12:26