获取表(JS)中隐藏元素的值

时间:2018-02-07 07:56:56

标签: javascript jquery

我的视图中有表格

这是代码

  <tbody id="patients" style="overflow-y: scroll;">
                @foreach (var item in Model)
                {
                    <tr>
                        <td class="point">
                            @(rowNo += 1)
                        </td>
                        <td style="display:none"  class="id">
                            @Html.DisplayFor(modelItem => item.Id)
                        </td>
                        <td class="birthday">
                            @Html.DisplayFor(modelItem => item.Date_of_Birthday)
                        </td>
                        <td  class="name">
                            @Html.DisplayFor(modelItem => item.Name)
                        </td>
                        <td class="title"></td>
                        <td class="title"></td>
                        <td class="lastedit">@Html.DisplayFor(modelItem => item.Last_edit)</td>
                        <td style="text-align: end;">
                            <img style="width:30px;height:30px;" class="delete_pt" src="~/images/icons8-Delete-50.png" />
                            <img style="width:30px;height:30px;" class="masters_data" src="~/images/icons8-Document-30.png" />
                        </td>
                    </tr>
                }
            </tbody>

我需要<td style="display:none" class="id"> @Html.DisplayFor(modelItem => item.Id) </td>

对于它我有需要从id类元素

获取值的函数

这是功能代码

 $(document).on('click', '.delete_pt', function () {
    deleting();
});

function deleting() {
    var title = $(this).parent().find('.id').text();
    alert(title);
    var model = {
    id:pasreInt(id)        };
    $.ajax({
    url: '/PatientDatabase/DeletingPerson',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(model),
        type: 'POST',
        dataType: 'json',
        processData: false,
        success: function (data) {
          location.reload();
        }
    });
}

但是当我试图在警报中获得价值时,我什么也得不到。

哪里可以成为我的问题?

1 个答案:

答案 0 :(得分:2)

这是我的示例代码:

$(function() {
  createRows();

  function createRows() {
    let dummyData = ['Fadhly', 'Aira', 'Haura', 'Al-Khwarizmi'];
    
    let tRows = '';
    for (let i = 0; i < dummyData.length; i++) {
      let rowData = {
        Id: 'id' + i,
        No: i+1,
        Name: dummyData[i]
      };
      
      tRows += '<tr>';
      tRows += '<td>' + rowData.No + '</td>';
      tRows += '<td style="display: none;">' + rowData.Id + '</td>';
      tRows += '<td>' + rowData.Name + '</td>';
      tRows += '<td><button class="btn-delete">Delete</button></td>';
      tRows += '</tr>';
    }
    
    $('tbody').html(tRows);
  }
  
  $('button.btn-delete').on('click', function() {
    let container = $(this).closest('tr');
    alert(container.find('td:nth(1)').html())
  });
});
table {
  width: 100%;
}
table, td {
  border: 1px solid;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <thead>
    <tr>
      <td>No</td>
      <td style="display: none;">Id</td>
      <td>Name</td>
      <td>Action</td>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

因此,对于您的情况,您可以使用以下方式获取数据:

$('.delete_pt').on('click', function() {
  let container = $(this).closest('tr');
  alert(container.find('.id').html())
});