我该如何将以下xPath转换为jQuery 1.10选择器?
我想使用这个结果来做类似这样的事情:
/html/body/div[4]/div[2]/div/div/div/ul/li[4]
我想使用这个结果来做类似这样的事情:
jQuery('selector').hide();
/html/body/div[4]/div[2]/div/div/div/ul/li[4]
jQuery('selector').hide();
好的,这是一个识别语法差异的问题:
/
作为父/子分隔符,而CSS/jQuery选择器使用>
。:nth-child()
伪选择器。所以:
let xpath = '/html/body/div[4]/div[2]/div/div/div/ul/li[4]';
let jq_sel = xpath
.substr(1) //discard first slash
.replace(/\//g, ' > ')
.replace(/\[(\d+)\]/g, ($0, i) => ':nth-child('+i+')');
$('html body div:eq(4) div:eq(2) div div div ul li:eq(4)')
我不确定 div 具体是指什么,也许可以像这样另外一个:
$('html body div:eq(4) div:eq(2) div:first div:first div:first ul li:eq(4)')
nth-child
选择器。我似乎无法在JQuery 3+中使其工作。也许他们改变了什么。否则,只要不必到达特定的子元素,就足够好用了。根据@razielx4crazy的答案,我进行了一些微小的更改来纠正这个问题。 - JRSofty