首页 > 解决方案 > 无法使用 jquery 从表 div 内的文本框中获取值

问题描述

我想获得我分配了class =“qty-text”的文本框值。它可以是多个文本框,但为了简单起见,我在这里只使用了一个。尝试下面的代码,但它返回未定义的值。请帮忙解决这个问题。

$(document).on('click','.qButton',function(e){

var id="a318d5";
var get_value = $('#a318d5').closest("div.quantity").find("input[class='qty-text']").val();
alert(get_value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<table>
<tr>
 
        <td class="action"><a href="#" id="a318d5" class="remove_cart"><i class="fa fa-times" aria-hidden="true"></i></a></td>
                                    <td class="cart_product_img">
                <a href="#">Image</a>
                                    </td>
                                    <td class="cart_product_desc">
                                        <h5>Product</h5>
                                    </td>
                                    <td>
                                        <span> M  </span>
                                    </td>
                                    <td class="price"><span>$320</span></td>
                                    <td class="qty">
                                        <div class="quantity">
                                            <input type="number" class="qty-text" step="1" min="1" max="1" name="quantity" value=3>
                                        </div>
                                        <i class="fa fa-caret-down downarr"></i>
                                    </td>
                                    <td class="total_price"><span>960</span></td>
                                </tr>
</table>

<button class="col-xs-12 qButton">select</button>

标签: javascriptjqueryhtml

解决方案


您的代码中的 DOM 层次结构存在问题。是在当前的input.qty-text另一个内部的某个地方(我们甚至不能确切地知道,下一个与否)。所以,试试这个:tdtrtd

$(document).on('click', '.qButton', function(e) {
  var id="a318d5";
  var get_value = $('#' + id).closest("tr").find("input.qty-text").val();

  alert(get_value);
});

推荐阅读