javascript - 获取最后一个子元素之前的内部文本

标签 javascript node.js puppeteer

我有以下示例,其中我尝试提取“a”元素的内部文本,该元素是位于列表最后一个子元素之前的“i”元素的子元素。

示例:

<div class="lms-pagination" id="lms-pagination">    
	<ul>      
        <li class="disabled">
          <span class="current prev">Previous page</span>
        </li>
        <li class="active">
          <span class="current en-lang">1</span>
        </li>        
        <li>
          <a data-page="1" class="page-link en-lang">2</a>
        </li>
        <li>
          <a data-page="2" class="page-link en-lang">3</a>
        </li>
        <li class="disabled"><span class="ellipse">...</span></li>
        <li>
          <a data-page="17" class="en-lang">18</a> <!-- Try to extract 18 in this example -->
        </li>
        <li>
          <a href="#1" class="next">Next page</a>
        </li>
  </ul>
</div>

我正在尝试使用类似的东西

                    lastPage = await newPage.$$eval('#lms-pagination>ul>li:nth-child(???)>a', el => el.innerText);

最佳答案

使用 JavaScript:=

function myFunction() {
  var list = document.getElementById("myList").lastChild.innerHTML;
  document.getElementById("demo").innerHTML = list;

  var items = document.querySelectorAll("li");
  var lastchild = items[items.length - 2].innerHTML;
  document.getElementById("demo1").innerHTML = lastchild;
}
<p>Example list:</p>
<ul id="myList">
  <li>Coffee</li>
  <li>Tea</li>
  <li>Coffee22</li>
  <li>Tea22</li>
  <li>Coffee33</li>
  <li>Tea33</li>
</ul>
<p>Click the button to get the HTML content of the list's last child node.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<p id="demo1"></p>
<script>
</script>

使用 jQuery:=

alert($("li:nth-last-of-type(2)").text())
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="lms-pagination" id="lms-pagination">
  <ul>
    <li class="disabled">
      <span class="current prev">Previous page</span>
    </li>
    <li class="active">
      <span class="current en-lang">1</span>
    </li>
    <li>
      <a data-page="1" class="page-link en-lang">2</a>
    </li>
    <li>
      <a data-page="2" class="page-link en-lang">3</a>
    </li>
    <li class="disabled"><span class="ellipse">...</span></li>
    <li>
      <a data-page="17" class="en-lang">18</a>
      <!-- Try to extract 18 in this example -->
    </li>
    <li>
      <a href="#1" class="next">Next page</a>
    </li>
  </ul>
</div>

关于javascript - 获取最后一个子元素之前的内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55254511/

相关文章:

javascript - 删除并添加到数据库

node.js - 使用 nodejs 和 node-mysql 返回行

node.js - 如何从数据库中删除环回模型和引用

node.js - 添加特定 unicode 表情时 Discord.js message.react 失败

jestjs - 将 Jest 步骤定义提取到单独的文件

javascript - 如何跟踪和收集特定字段的所有使用过的依赖 JavaScript

javascript - 如何使用正则表达式从字符串中去除 [a-z]/[a-z]/?

javascript - 类型错误 : Cannot read property 'name' of null

javascript - mouseup 事件停止 firefox 上的 click 事件

node.js - Puppeteer 内存增加问题