当前位置: 首页 > 知识库问答 >
问题:

在没有类和id的div中获取元素

钮才哲
2023-03-14

我有一个分页div,其中我有一个html,我不能配置为添加类或ID。我得用我现有的工作。

我有一个问题,当页面被选中时,它会丢失。自动的页面编号是文本:“1”或它也可以是“2”,我想知道一种方法,通过css或javascript我可以得到这个元素“1”或“2”或“3”...并自定义它。

代码如下:

null

<nav class="bs__pagination" aria-label="Paginação">
<i class="icon-seta-esquerda-b icon" aria-hidden="true"></i>
  "1"
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GNJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 2" id="pc1617030662888_linkToPage_2">2</a>
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GOJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 3" id="pc1617030662888_linkToPage_3">3</a>
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GPJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a próxima página" id="pc1617030662888_nextPage"><i class="icon-seta-direita-b icon" aria-hidden="true"></i></a>
</nav>

null

有人能帮帮我吗?

共有2个答案

桂宏旷
2023-03-14

如果它是页面上唯一的一个,您可以使用CSS选择器.bs__paginationiqueryselector选择它前面的i元素,并使用它的nextsibling属性获取它后面的文本节点,使用它的nodevalue获取字符串(可能使用trim()删除空格):

null

console.log(
    document.querySelector(".bs__pagination i")
        .nextSibling
            .nodeValue.trim()
);
html lang-html prettyprint-override"><nav class="bs__pagination" aria-label="Paginação">
<i class="icon-seta-esquerda-b icon" aria-hidden="true"></i>
  "1"
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GNJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 2" id="pc1617030662888_linkToPage_2">2</a>
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GOJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 3" id="pc1617030662888_linkToPage_3">3</a>
<a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GPJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a próxima página" id="pc1617030662888_nextPage"><i class="icon-seta-direita-b icon" aria-hidden="true"></i></a>
</nav>
步博涉
2023-03-14

假设活动页总是存储在父页中唯一包含内容的节点中,那么您可以使用filter()检索它,并使用textcontent获取其中的文本。试试看:

null

let nodes = [...document.querySelector('nav.bs__pagination').childNodes];
let textNodes = nodes.filter(node => node.nodeType === 3 && node.textContent.trim().length > 0);
let pageNumber = textNodes[0].textContent.trim();
console.log(pageNumber);
html prettyprint-override"><nav class="bs__pagination" aria-label="Paginação">
  <i class="icon-seta-esquerda-b icon" aria-hidden="true"></i> "1"
  <a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GNJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 2" id="pc1617030662888_linkToPage_2">2</a>
  <a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GOJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a página 3" id="pc1617030662888_linkToPage_3">3</a>
  <a href="p0/IZ7_819E19820H3TB0Q3I25JK808F2=CZ6_819E19820H3TB0Q3I25JK800I3=MKJTMIKw=GPJ=/#Z7_819E19820H3TB0Q3I25JK808F2" title="Link para a próxima página" id="pc1617030662888_nextPage"><i class="icon-seta-direita-b icon" aria-hidden="true"></i></a>
</nav>
 类似资料:
  • 你好,我正在使用HtmlUnit库,我需要从标记获得一些href属性,在一些div: 此div位于 内部,而 内部 为了获得,我执行了以下操作: HTML: 现在从我发布的div中,我需要获得href,但我不确定如何做到这一点。是的,div有一个类名,但如果我有 它将打印15,因为中总共有15个列表,每个列表中都有一个div类。我需要做的是,在我从迭代中获得的中,使用类的准确div,而不是使用该类

  • 我是Jsoup解析的新手,我想获得这个页面上所有公司的列表:https://angel.co/companies?company_types[]=startup现在,一种实现这一点的方法实际上是使用与我需要的相关的div标记来检查页面。但是,当我调用该方法时: 首先,我甚至无法在我的consol html输出中找到那些DIV标记(这些标记应该给出公司的列表);其次,即使我找到了它,我如何才能找到具

  • 问题内容: 我正在尝试通过JavaScript / CSS修改页面(很像Fashiony或Greasemonkey一样)。这是一个非常复杂的页面(我没有构建或无法修改预渲染),这使得构造CSS选择器变得很困难(手动查看文档结构)。我该如何实现? 问题答案: 在安装了FireBug的情况下使用FireFox。 右键单击任何元素 选择“检查元素” 右键单击HTML树中的元素 选择“复制XPath”或“

  • 问题内容: 还有另一种获取DOM元素ID的方法吗? 问题答案: 是的,你可以只使用属性的的DOM元素,例如: 或者,是这样的:

  • 问题内容: 这应该真的很简单,但是我遇到了麻烦。如何获得子元素的父div? 我的HTML: 我的JavaScript: 我本来以为还是会工作,但我不断收到错误。请注意,已定义,但不是其中的某些变量。 有任何想法吗? PS我希望尽可能避免使用jQuery。 问题答案: 您正在寻找,其继承自:

  • 我有一个字符串来保存整个html文档。我想获取具有特定ID的div中的所有内容。例如: 我需要id =“myId”标签和它的结束标签之间的内容。有什么方法可以实现这一点吗?输出应该是第二行。