在其他元素Javascript中获取元素

时间:2016-08-05 07:52:56

标签: javascript jquery

我知道之前已经问过这个问题,但不是这样... 我有这个HTML。

 <table class="fr ralign cartSummaryTable">
  <tr>
    <td width="320px">
      <div class="tr">
        Subtotal (5 items):
      </div>
    </td>
    <td>
      <div class="nowrap tr normal">$684.23
      </div>
    </td>
  </tr>
  <tr>
    <td width="320px">
      <div class="tr">
        <span> Shipping to <a id="guestZipLink" href="javascript:;">19802-4358                              </a>
</span></div>
    </td>
    <td>
      <div class="tr nowrap normal">$4.49
      </div>
    </td>

我想得到第二个价格4.49美元。

我的代码是:

price= $('#cartSummaryTable tr:eq(1) td:eq(1) td:eq(1) .tr:eq(1)').textContent;
console.log("My price is" + price);

但是我的结果是未定义的。 我做错了什么,做正确的方法是什么?

3 个答案:

答案 0 :(得分:3)

$('#cartSummaryTable tr:eq(1) td:eq(1)')将返回jQuery对象,因此无法使用textContent,您使用.text()

$('.cartSummaryTable tr:eq(1) td:eq(1) .tr').text();

或者,通过使用get(0)[0]来获取底层DOM元素,然后可以使用textContent

$('.cartSummaryTable tr:eq(1) td:eq(1) .tr')[0].textContent;

&#13;
&#13;
console.log($('.cartSummaryTable tr:eq(1) td:eq(1) .tr').text());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="fr ralign cartSummaryTable">
  <tr>
    <td width="320px">
      <div class="tr">
        Subtotal (5 items):
      </div>
    </td>
    <td>
      <div class="nowrap tr normal">$684.23
      </div>
    </td>
  </tr>
  <tr>
    <td width="320px">
      <div class="tr">
        <span> Shipping to <a id="guestZipLink" href="javascript:;">19802-4358                              </a>
</span></div>
    </td>
    <td>
      <div class="tr nowrap normal">$4.49
      </div>
    </td>
    </table>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

jQuery()返回一个jQuery对象,而不是普通的DOM节点引用,因此您无法在其上调用textContent,但可以使用jQuery函数{ {1}}。

如果您确实想使用text(),可以使用textContentget(0),但这些并不完全等同于[0]

答案 2 :(得分:1)

要获取该单元格内的文本(即$ 4.49):

var price = $("table.cartSummaryTable tr:eq(1) td:eq(1) div").text();

要将价格作为数字,您可以对其进行数值计算:

var price_as_float = parseFloat($("table.cartSummaryTable tr:eq(1) td:eq(1) div").text().substring(1));