代码之家  ›  专栏  ›  技术社区  ›  xendi

按索引获取特定元素的文本

  •  1
  • xendi  · 技术社区  · 6 年前

    我要获取从第二行到最后一行的文本,因此我尝试执行以下操作:

    var tradeNumEl = $("td.trade-num").length - 2;
    console.log($("td.trade-num")[tradeNumEl].text())
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table>
      <tr>
        <td class="trade-num">100</td>
      </tr>
      <tr>
        <td class="trade-num">101</td>
      </tr>
      <tr>
        <td class="trade-num">102</td>
      </tr>
      <tr>
        <td class="trade-num">103</td>
      </tr>
      <tr>
        <td class="trade-num">104</td>
      </tr>
      <tr>
        <td class="trade-num">105</td>
      </tr>
    </table>

    但是它给了我:

    未捕获的类型错误:$(…)[贸易编号]。文本不是函数

    我怎么修这个?这是小提琴: https://jsfiddle.net/45a9sc6k/4/

    3 回复  |  直到 6 年前
        1
  •  2
  •   Rory McCrossan    6 年前

    通过索引访问jquery对象将返回集合索引处的元素对象。它不返回jquery对象-因此出现了错误。要修复此问题,请使用 eq() 相反:

    console.log($("td.trade-num").eq(tradeNumEl).text());
    

    var tradeNumEl = $("td.trade-num").length - 2;
    console.log($("td.trade-num").eq(tradeNumEl).text());
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table>
      <tr>
        <td class="trade-num">100</td>
      </tr>
      <tr>
        <td class="trade-num">101</td>
      </tr>
      <tr>
        <td class="trade-num">102</td>
      </tr>
      <tr>
        <td class="trade-num">103</td>
      </tr>
      <tr>
        <td class="trade-num">104</td>
      </tr>
      <tr>
        <td class="trade-num">105</td>
      </tr>
    </table>
        2
  •  0
  •   Kiran Shahi Jonny    6 年前

    你必须使用 eq() 以索引编号作为参数。 .eq(index) 将匹配的元素集减少到指定索引处的元素集。

    var tradeNumEl = $("td.trade-num").length - 2;
    console.log($("td.trade-num").eq(tradeNumEl).text() )
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
    <tr>
      <td class="trade-num">100</td>
    </tr>
    <tr>
      <td class="trade-num">101</td>
    </tr>
    <tr>
      <td class="trade-num">102</td>
    </tr>
    <tr>
      <td class="trade-num">103</td>
    </tr>
    <tr>
      <td class="trade-num">104</td>
    </tr>
    <tr>
      <td class="trade-num">105</td>
    </tr>
    </table>
        3
  •  0
  •   Ullas Hunka    6 年前

    还可以创建找到的元素的对象

    ///I want to get the text of the second to last table row using js and jquery. So I tried to do this:
    
    var tradeNumEl = $("td.trade-num").length - 2;
    console.log($($("td.trade-num")[tradeNumEl]).text(), tradeNumEl)
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
    <tr>
      <td class="trade-num">100</td>
    </tr>
    <tr>
      <td class="trade-num">101</td>
    </tr>
    <tr>
      <td class="trade-num">102</td>
    </tr>
    <tr>
      <td class="trade-num">103</td>
    </tr>
    <tr>
      <td class="trade-num">104</td>
    </tr>
    <tr>
      <td class="trade-num">105</td>
    </tr>
    </table>