我希望在以下结构中定位<td class="total">
:
<table class="table table-shopping-cart">
<tbody>
<tr>
<td><div class="photo"></div></td>
<td><div class="product"></div></td>
<td style="text-align:center;">
<form action="/shoppingCart/261021" method="post" >
<div class="control-group quantity">
<div class="controls">
<a href="#" class="qty-btn qty-btn-minus">-</a><div class="qty-box">1</div><a href="#" class='qty-btn qty-btn-plus'>+</a>
<span style="display:none;" class="maxQty">1</span>
<select name="quantity" style="width: 60px" class="quantity" scliid="261021" id="quantity" >
<option value="1" selected="selected" >1</option>
</select>
</div>
</div>
</form>
</td>
<td class="total">
<p style="margin-top:34px;">
$144.00
</p>
</td>
</tr>
<tr>..</tr>
</tbody>
</table>
<script>
$(document).ready(function () {
$('.table-shopping-cart').delegate('.qty-btn-minus', 'click', function() {
var $this = $(this);
if(!$this.hasClass('blur')) {
var $qtyBox = $this.parent().find('.qty-box');
var $qtyBoxQty = 1*$qtyBox.text();
var newVal = $qtyBoxQty;
var form = $this.closest('form');
alert($this.parent('tr').find('.total').text());
});
});
</script>
但是,alert($this.parent('tr').find('.total').text());
返回undefined
。
如何定位<td class="total">
以获得'$ 144.00'?
答案 0 :(得分:2)
.parent()
method仅选择立即父级,在您的情况下,.qty-btn-minus
锚的直接父级是div元素。
使用.closest()
method代替向上导航DOM树到最近的祖先tr:
alert( $this.closest("tr").find(".total").text() );
(此外,您的if
语句似乎没有结束}
。您需要修复该问题,否则该脚本根本无效。)
答案 1 :(得分:2)
最简单的方法是使用closest
方法:
console.log($this.closest('tr').find('.total p').text().trim());
以上将获得总标记内p标记的文本值。输出结果将是:
$144.00
答案 2 :(得分:-1)
您可以简单地按类选择td并使用方法.text()
$('td .total')。text();