jquery中的“nearest()”方法不起作用

时间:2016-11-04 15:06:44

标签: javascript c# jquery html

所以我有这个HTML代码和jquery代码。当我按下一个带有类名“fa-products”的tablerows“produkter”按钮时,我想找到与您选择单击的按钮位于同一个tablerow上的隐藏字段输入(每个tablerow都有一个隐藏的字段输入和一个“产品按钮”)。那么我想将隐藏字段的值保存在一个变量中,所有人都可以帮助我吗?当我“console.log(discountId);”它响应不受欢迎的

 <div class="eastSide row top-buffer col-xs-8" style="overflow:scroll; height:250px;">

    <table style="width:100%">
        <tr>
            <th>Code</th>
            <th>Aktiv</th>
            <th>Skapad</th>
            <th></th>
        </tr>
        @foreach (var discount in Model.DiscountList)
        {

            <tr>

                <td><input name="codeTextBox" id="codeTextBox"  value="@discount.Code" maxlength="18" /></td>

                <td><input type="checkbox" id="activeCheckBox" name="activeCheckBox" checked="@discount.Active" /></td>
                <td><input type="datetime" value="@discount.CreatedDate" readonly /></td>
                <td>
                    <input type="button" value="Radera" class="fa fa-remove" data-url="@Url.Action("DeleteDiscountCode","Discount",new { id= discount.Id})" />
                    <input type="button" value="Uppdatera" class="fa fa-update" data-url="@Url.Action("UpdateDiscount","Discount")" />
                    <input type="button" value="Produkter" class="fa fa-products" id="@discount.Id" data-url="@Url.Action("chooseProductsForDiscountCode","Discount")" />
                </td>
                <td><input id="id" type="hidden" value="@discount.Id" /></td>
            </tr>
        }
    </table>


</div>



<script>
 $(".fa-products").on("click", function (e) {


                var discountId =     $(event.target).closest('input[type="hidden"]').val();
                console.log(discountId);





            });
</script>

2 个答案:

答案 0 :(得分:4)

它不起作用,因为隐藏的输入不是已注册元素的父级。

这可能会解决您的问题:$(event.target).closest('tr').find('input[type="hidden"]').val();

答案 1 :(得分:0)

您需要通过closest搜索公共父元素,然后在结果中找到input

$(".fa-products").on("click", function (e) {
    var discountId = $(event.target).closest('tr').find('input[type="hidden"]').val();
    console.log(discountId);
});