繁体   English   中英

使用Javascript选择嵌套元素

[英]Using Javascript to select nested element

如何选择嵌套元素

例如

我们有这样的事情(这是列表页上看起来LinkedIn搜索人员时等)

<li class="page-list">
      <ol>
            <li class="active">1</li>
            <li><button data-ember-action="" data-ember-action-6289="6289" data-is-animating-click="true">2</button></li>
            <li><button data-ember-action="" data-ember-action-6291="6291">3</button></li>
            <li><button data-ember-action="" data-ember-action-6293="6293">4</button></li>
            <li><button data-ember-action="" data-ember-action-6295="6295">5</button></li>
            <li><button data-ember-action="" data-ember-action-6297="6297">6</button></li>
            <li><button data-ember-action="" data-ember-action-6299="6299">7</button></li>
            <li><button data-ember-action="" data-ember-action-6301="6301">8</button></li>
            <li><button data-ember-action="" data-ember-action-6303="6303">9</button></li>
            <li><button data-ember-action="" data-ember-action-6305="6305">10</button></li>
      </ol>
    </li>

现在,就像这样,页面上有多个li元素,但只有一个元素带有<li class="page-list">

现在,从这个li我想点击/选择这个

<button data-ember-action="" data-ember-action-6291="6291">3</button>

它进一步嵌套在<li>

[问题]有人可以帮助我,告诉我如何选择/点击这个? 另外我不能使用data-ember-action因为在data-ember-action-6289中,6289不是固定的和随机的(对于不同的搜索可能不同),因此当我创建一个脚本来执行操作时,它不会了解data-ember-action中的数字。

一个简单的querySelector会这样做:

 console.log(document.querySelector('[data-ember-action-6291="6291"]')) 
 <li class="page-list"> <ol> <li class="active">1</li> <li><button data-ember-action="" data-ember-action-6289="6289" data-is-animating-click="true">2</button></li> <li><button data-ember-action="" data-ember-action-6291="6291">3</button></li> <li><button data-ember-action="" data-ember-action-6293="6293">4</button></li> <li><button data-ember-action="" data-ember-action-6295="6295">5</button></li> <li><button data-ember-action="" data-ember-action-6297="6297">6</button></li> <li><button data-ember-action="" data-ember-action-6299="6299">7</button></li> <li><button data-ember-action="" data-ember-action-6301="6301">8</button></li> <li><button data-ember-action="" data-ember-action-6303="6303">9</button></li> <li><button data-ember-action="" data-ember-action-6305="6305">10</button></li> </ol> </li> 

如果您不能指望data-属性,那么只需选择ol的第三个子项:

 console.log( document.querySelector('.page-list li:nth-child(3)') ); 
 <li class="page-list"> <ol> <li class="active">1</li> <li><button data-ember-action="" data-ember-action-6289="6289" data-is-animating-click="true">2</button></li> <li><button data-ember-action="" data-ember-action-6291="6291">3</button></li> <li><button data-ember-action="" data-ember-action-6293="6293">4</button></li> <li><button data-ember-action="" data-ember-action-6295="6295">5</button></li> <li><button data-ember-action="" data-ember-action-6297="6297">6</button></li> <li><button data-ember-action="" data-ember-action-6299="6299">7</button></li> <li><button data-ember-action="" data-ember-action-6301="6301">8</button></li> <li><button data-ember-action="" data-ember-action-6303="6303">9</button></li> <li><button data-ember-action="" data-ember-action-6305="6305">10</button></li> </ol> </li> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM