Не может получить динамическое значение таблицы td, используя jquery
Я пытаюсь получить значение 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 ответа
Решение
Вы можете просто пройти 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();
});
Ваш id
для каждого td
должно быть уникальным и что вы можете достичь, просто добавив item.Id
:-
<td id="@("quantity" + item.Id)">
и тогда вы можете получить к нему доступ, как вы уже делаете,
function update(id) {
var quantity = $('#quantity' + id).html().trim();
alert(quantity);
}