访问特定td的内容但无法更改其内容

时间:2016-04-28 11:08:24

标签: jquery ajax

修改

<table class="table table-hover" id="patient_name_table">
                <tr id="after_tr_2">
                  <th>Patient</th>
                  <th>Phone</th>
                  <th>D.O.B</th>
                  <th>Address</th>
                  <th>Edit</th>
                </tr>
                <tbody>
                  <?php foreach($name_array as $tabName) { ?>
                  <tr id="<?php echo $tabName['id']; ?>">
                    <td class="nameid"><?php echo '<a href="patients.php?patient='.$tabName['id'].'">'.$tabName['patient_name'].'</a>';?></a>
                    </td>
                    <td class="phoneid"><?php echo $tabName['phone']?></td>
                    <td class="dobid"><?php echo $tabName['dob']?></td>
                    <td class="addressid"><?php echo $tabName['patient_address']?></td>
                    <td><button type="button" class="btn btn-info" id="editInfo">Edit</button>
                  </tr>
                  <?php } ?>
                </tbody>
              </table>

以下是更新表格:

<div class="box" id="dialog" title="Update Patient Informations" style="display:none">
                  <form class="form-horizontal" id="add_app_form">
                    <table class="table table-striped table-hover" style="width:650px;">
                        <tr><th style="text-align:left;width:150px">Patient Name:</th> <td><input type="text" class="form-control" id="name_upd"></td></tr>
                        <tr><th style="text-align:left;width:150px">Phone:</th> <td><input type="text" class="form-control" id="phone_upd"></td></tr>
                        <tr><th style="text-align:left;width:150px">D.O.B:</th><td><input type="text" class="form-control" id="dob_upd"></td></tr>
                        <tr><th style="text-align:left;width:150px">Address:</th> <td><input type="text" class="form-control" id="address_upd"></td></tr>
                    <tr><td colspan="3"><button type="button" id="upd_info" class="btn btn-info pull-right">Update</button></td></tr>
                    <table>
                </form>
              </div>

我有这一行,我在表格中获取特定行的ID:

var id = $(this).closest('tr').attr('id');

现在,我需要使用以下行从此tr以及td的{​​{1}}名称中获取具体信息:

class=nameid

现在的问题是我无法访问var x = $(this).parent('td').parent('tr').children('td.nameid').text(); 将其值更改为AJAX调用成功函数中的新值。

这是ajax调用:

x

他们有办法吗?

2 个答案:

答案 0 :(得分:0)

文本将从文本内部返回文本,而不是文本的访问者。尝试将x保留为$(this).parent('td').parent('tr').children('td.nameid'),并使用x.text()获取文本,然后使用x.text('new text')

进行设置

答案 1 :(得分:0)

success回调拥有自己的this。您应该在ajax调用之前获得.nameid的引用,并更改success中的文本,如下所示。

$("#upd_info").on('click', function(){
    var upd_name = $("#name_upd").val();
    var upd_dob = $("#dob_upd").val();
    var upd_phone = $("#phone_upd").val();
    var upd_address = $("#address_upd").val();

    //added following line
    var x = $(this).closest('tr').find('td.nameid');

    $.ajax({
        url: 'upd_patient.php',
        data: { upd_id: id, n: upd_name, d: upd_dob, p: upd_phone, a: upd_address },
        type: 'POST',
        dataType: 'JSON',

        success: function(res3) {
            $("#dialog").dialog("close");

            //added following line
            x.text('changed text'); 
        },
        error: function(res3) {
            console.log("Error Updating info");
        }
    });
});