目标在同一个

时间:2015-01-10 04:02:24

标签: javascript jquery html

我希望在以下结构中定位<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'?

3 个答案:

答案 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();