无法使用jquery

时间:2018-04-26 09:35:56

标签: jquery razor

我试图在点击按钮时从动态创建的表中获取TD值 这是我的表:

<tbody>
@foreach (var item in Model)
{
    <tr>
        <td id="Quantity">
            @Html.DisplayFor(modelItem => item.Quantity)
        </td>
       <td>
            <button type="button" class="btn btn-sm btn-info btnupdate" onclick="Update(@item.Id);">
               Update
            </button>
        </td>                            
    </tr>
}</tbody>

这是我的jquery:

            function update(id) {

            var Id = id;

            var quantity = $(Quantity).html().trim();//get only first td value for every tr
            var quantity = $(Quantity).text().trim();//get every td value 
            var quantity = $(this).closest("tr").find("#Quantity").text().trim(); //undefined
            var quantity = $('#Quantity').attr("value") //undefined


        }

我无法弄清楚这个问题。任何形式的帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

每个id的{​​{1}}应该是唯一的,只需附加td即可实现: -

item.Id

然后你可以像现在一样访问它,

<td id="@("quantity" + item.Id)"> 

答案 1 :(得分:0)

您可以直接传递item.Quantity,可以作为参数接受。

<button onclick="Update(@item.Id,@item.Quantity);">.....</button>

但是,我建议您使用.on(eventType, handler)方法使用不显眼的事件处理程序。将@item.Id分配给可以使用data-*获取的自定义.data(key)属性。

然后可以使用各种DOM遍历方法

    <tr>
        <td class="Quantity">
            @Html.DisplayFor(modelItem => item.Quantity)
        </td>
       <td>
            <button type="button" class="btn btn-sm btn-info btnupdate" data-id="@item.Id" >
               Update
            </button>
        </td>                            
    </tr>

脚本

$('.btnupdate').on('click', function(){
    var id = $(this).data('id');
    var qty = $(this).closest('tr').find('Quantity').text();
});