не может получить динамическое значение таблицы td, используя jquery - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь получить значение 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 голосов
/ 26 апреля 2018

ваши id для каждого td должны быть уникальными, и этого вы можете достичь, просто добавив item.Id: -

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

и тогда вы можете получить к нему доступ, как вы уже делаете,

function update(id) {
    var quantity = $('#quantity' + id).html().trim();
    alert(quantity);
}
0 голосов
/ 26 апреля 2018

Вы можете просто передать 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();
});
...