【问题标题】:Get value in 2nd li tag with javascript [closed]使用javascript在第二个li标签中获取值[关闭]
【发布时间】:2016-03-03 07:40:13
【问题描述】:

我需要在第二个 li 中获得值“Bra”,我没有使用 clas category64,因为每个页面都会更改类。

    <div class="breadcrumbs">
    <ul>
        <li class="home"><li>
        <li class="category63">
            <a href="http://asdasd.com/xyz/ title">Panty</a>
            <span>/ </span>
        </li>
        <li class="category93">
            <a href="http://asdasd.com/xyz" title=>Pierre Cardin</a>
            <span>/ </span>
                    </li>
        <li class="category64">
            <strong>Bra</strong>
    </ul>
</div>

我无法获得价值, 如果我得到第二个 li 的值,为什么输出“Pierre Cardin/”,输出有“/”,如何不包含“/”?

【问题讨论】:

  • 试试这个 $('.breadcrumbs > li:nth-of-type(2) strong').text();
  • 你的
      元素有一个类?你可以使用 Jquery 吗?
  • 对不起,我会用 javascript 来实现。 :(

标签: javascript html tags element


【解决方案1】:

使用nth-child选择器,它匹配给定索引的元素

var text = document.querySelector('.breadcrumbs li:nth-child(2)').innerText;
alert(text);
<div class="breadcrumbs">
  <ul>
    <li class="category63">
      <a href="http://asdasd.com/xyz/ title">Panty</a>
      <span>/ </span>
    </li>
    <li class="category64">
      <strong>Bra</strong>
  </ul>
</div>

【讨论】:

  • 他只能用JS...
  • 对不起,我用javascript实现了这个。
  • 我改了代码,因为有问题,你能更正你的答案吗? @RayonDabre
  • @RayonDabre 我实现了代码,但输出未定义。 :(
  • 点击运行代码片段并检查...
【解决方案2】:

你可以试试:

var a = document.querySelectorAll(".breadcrumbs li")[1].innerText;
alert(a);

demo

【讨论】:

  • 对不起,我更改了代码,因为代码不正确。 @阳光
  • 我改了代码,因为有问题,你能更正你的答案吗?
  • @StevenAndrian,选择器“.breadcrumbs li”会找到类“breadcrumbs”中的所有li元素,所以添加ul标签后代码还是可以的。但是,在您的演示代码中,缺少一个“”标签。
  • 我实现了代码,但输出未定义。 :( 但如果我更改为 innerHTML,则输出为 asdasd.com/xyztitle">Panty /
  • @StevenAndrian,你能提供你的问题演示吗? jsfiddle 或 jsbin。
【解决方案3】:

在jquery中习惯了这段代码

var code = $('.breadcrumbs &gt; li:nth-of-type(2) strong').text(); alert(code);

【讨论】:

  • 对不起,我用javascript实现了这个。
【解决方案4】:

你有几个选择:

首先:给&lt;strong&gt;标签附加一个id

<strong id="myId">Bra</strong>

并通过以下方式获取值:

 var text = document.getelementById('myId').innerHTML;

第二种:使用getElementsByTagName()获取为:

var text = document.getelementByTagName('li')[1].innerHTML;

但我个人不推荐它,因为如果你在想要获取的 DOM 树之上添加更多的 li 标签,li 的值可能会有所不同。

可以将 id 属性添加到 li 而不是 strong 标记,但是您将需要在获取 innerHTML 之前获取第一个子元素:

var text = document.getelementById('myId').firstChild.innerHTML;

【讨论】:

    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多