我知道之前已经问过这个问题,但不是这样... 我有这个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);
但是我的结果是未定义的。 我做错了什么,做正确的方法是什么?
答案 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;
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;
答案 1 :(得分:1)
jQuery()
返回一个jQuery对象,而不是普通的DOM节点引用,因此您无法在其上调用textContent
,但可以使用jQuery函数{ {1}}。
如果您确实想使用text()
,可以使用textContent
或get(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));