将表ID与对象键匹配?

时间:2017-06-02 16:25:51

标签: javascript jquery javascript-objects

我在每个表格单元格上都有id的表格。每个id在Javascript对象中都有匹配的键。 Ajax调用将返回带有值的Object。我想遍历表并为每个表格单元格分配值,如果密钥匹配单元格id。这是一个例子:

HTML表:

<table class="tblData">
    <tr>
        <th>Last Name</th>
        <td id="st_lname"></td>
    </tr>
    <tr>
        <th>First Name</th>
        <td id="st_fname"></td>
    </tr>
    <tr>
        <th>DOB</th>
        <td id="st_dob"></td>
    </tr>
</table>

使用Javascript:

$.ajax({
    type: 'POST',
    url: 'Components/getRecords.cfc?method='+getMethod,
    data: {'userID':userID},
    dataType: 'json'
}).done(function(obj){
    if(obj.STATUS == 200){
        //Here I can access my obj.DATA values and get the key for each value
        $('.tblData table tr td').each(function(){
            $(this).attr('id').toUpperCase();
        });

        return true;
    }else{
        return false;
    }
}).fail(function(jqXHR, textStatus, errorThrown){
    alert(errorThrown);
});

以下是我从服务器收到响应后对象的外观:

{"STATUS":200,"DATA":{"ST_DOB":"03/16/2010","ST_FNAME":"John","ST_LNAME":"Miller"}}

在我成功返回后,我想循环遍历表,如上所述,并在对象中找到每个表格单元格id的匹配键,并将值分配给该单元格。如果有人可以提供帮助,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:2)

您的选择器不正确。它应该是.tblData tr td。您可以使用jQuery&#39; s text()方法

分配值

&#13;
&#13;
var res = {
  "STATUS": 200,
  "DATA": {
    "ST_DOB": "03/16/2010",
    "ST_FNAME": "John",
    "ST_LNAME": "Miller"
  }
};

$('.tblData tr td').each(function(i, ele) {
  var id = $(ele).attr('id').toUpperCase();
  var value = res.DATA[id];
  if (value) {
    $(ele).text(value);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table class="tblData">
  <tr>
    <th>Last Name</th>
    <td id="st_lname"></td>
  </tr>
  <tr>
    <th>First Name</th>
    <td id="st_fname"></td>
  </tr>
  <tr>
    <th>DOB</th>
    <td id="st_dob"></td>
  </tr>
</table>
&#13;
&#13;
&#13;