Javascript 循环最后一个td,在每个tr jquery中追加数据

Javascript 循环最后一个td,在每个tr jquery中追加数据,javascript,jquery,ajax,html-table,Javascript,Jquery,Ajax,Html Table,有人能帮我解决这个问题吗? 我有一个ajax调用返回以下内容。 我希望下面的ajax调用返回在表中,我希望它附加到表tr中,并通过puse为每个tr添加最后一个td循环 我当前的代码: "pid": "1", "pcode": "drug-001", "pname": "Abacavir (ABC) ", "pdosage": "3/4/4", "puse": [ { "adDate": "2018-06-11",

有人能帮我解决这个问题吗? 我有一个ajax调用返回以下内容。 我希望下面的ajax调用返回在表中,我希望它附加到表tr中,并通过puse为每个tr添加最后一个td循环

我当前的代码:

   "pid": "1",
   "pcode": "drug-001",
   "pname": "Abacavir (ABC) ",
   "pdosage": "3/4/4",
   "puse": [
         {
            "adDate": "2018-06-11",
            "adTime": "19:01:06"
         },
         {
            "adDate": "2018-06-11",
            "adTime": "19:01:06"
         }
      ]
   },
   {
      "pid": "2",
      "pcode": "drug-002",
      "pname": "Abacavir (ABC) ",
      "pdosage": "3/4/4",
      "puse": [
         {
            "adDate": "2018-06-11",
            "adTime": "19:01:06"
         },
         {
            "adDate": "2018-06-11",
            "adTime": "19:14:26"
         }
      ]
   },
   {
      "pid": "3",
      "pcode": "drug-003",
      "pname": "a-B-Artemether Injection",
      "pdosage": "3/4/4",
      "puse": [
         {
            "adDate": "2018-06-11",
            "adTime": "19:01:06"
         }
      ]
   },
   {
      "pid": "4",
      "pcode": "drug-004",
      "pname": "Acetazolamide",
      "pdosage": "3/4/4",
      "puse": []
   },
   {
      "pid": "5",
      "pcode": "drug-005",
      "pname": "Acetazolamide",
      "pdosage": "3/4/4",
      "puse": []
   }
]
$.ajax({
类型:“POST”,
url:'call.php',
数据类型:“json”,
数据:{},
成功:功能(数据){
$。每个(数据、函数(键、值){
$(“#PatientTreatment”).append(“”+val.pname+
''+val.pcode+''+val.pdosage+''+val.pdisc+
'')
$.each(val.puse,函数(key,valb){
附加(“”+valb.adDate+adTime+“”)
});
});
}
})

药物-001
阿巴卡维(ABC)
pdosage
2018-06-11 19:01:06
2018-06-11 19:01:06

这应该很容易实现,假设我正确地理解了您的需求,这看起来如何

实际上,在StackOverflow上查看代码片段非常困难,请尝试查看codepen.io链接

我使用了
td:nth child(4)
作为选择器,按照您的想象得到当前行中的第四个td(因为我们仍然在封闭的foreach中,所以我们仍然“在”TR元素中)

另外请注意,我已经删除了Ajax调用,因为这是一个痛苦的过程,并且在代码段中包含了JSON作为变量。您应该能够获取foeach代码段,并使用来自Ajax的数据将其应用到您自己的代码中

$.each(data, function(key, val) {
  $('table > tbody').append('<tr><td>' + val.pname + '</td><td>' + val.pcode + '</td> <td>' + val.pdosage + '</td><td>' + val.pdisc +
    '</td><td class="test"></td><td id="td' + val.pid + '"></td></tr>')
  console.log(val.puse);
  $.each(val.puse, function(key, valb) {
    $('table > tbody td:nth-child(4) ').append('<div>' + valb.adDate + " " + valb.adTime + '</div>')
  });
});
$。每个(数据、函数(键、值){
$('table>tbody')。追加(''+val.pname+''+val.pcode+''+val.pdosage+''+val.pdisc+
'')
控制台日志(val.puse);
$.each(val.puse,函数(key,valb){
$('table>tbody td:n子项(4)')。追加(''+valb.adDate+''+valb.adTime+'')
});
});

var数据=[{
“pid”:“1”,
“pcode”:“drug-001”,
“pname”:“阿巴卡维(ABC)”,
“pdosage”:“3/4/4”,
“猫”:[{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
},
{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
}
]
}, {
“pid”:“2”,
“pcode”:“drug-002”,
“pname”:“阿巴卡维(ABC)”,
“pdosage”:“3/4/4”,
“猫”:[{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
},
{
“地址”:“2018-06-11”,
“广告时间”:“19:14:26”
}
]
}, {
“pid”:“3”,
“pcode”:“drug-003”,
“pname”:“a-B-蒿甲醚注射液”,
“pdosage”:“3/4/4”,
“猫”:[{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
}]
}, {
“pid”:“4”,
“pcode”:“drug-004”,
“pname”:“乙酰唑胺”,
“pdosage”:“3/4/4”,
“猫”:[]
}, {
“pid”:“5”,
“pcode”:“drug-005”,
“pname”:“乙酰唑胺”,
“pdosage”:“3/4/4”,
“猫”:[]
}]
//将其包装到ajax成功回调中
$。每个(数据、函数(键、值){
$('table>tbody')。追加(''+val.pname+''+val.pcode+''+val.pdosage+''+val.pdisc+
'')
控制台日志(val.puse);
$.each(val.puse,函数(key,valb){
$('table>tbody td:n子项(4)')。追加(''+valb.adDate+''+valb.adTime+'')
});
});

您已经非常接近了!这里有一种稍微不同的方法,它通过编程创建jQuery对象以便于使用,而不是构建一个巨大的字符串。下面是一个示例:

var数据=[
{
“pid”:“1”,
“pcode”:“drug-001”,
“pname”:“阿巴卡维(ABC)”,
“pdosage”:“3/4/4”,
“猫”:[
{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
},
{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
}
]
},
{
“pid”:“2”,
“pcode”:“drug-002”,
“pname”:“阿巴卡维(ABC)”,
“pdosage”:“3/4/4”,
“猫”:[
{
“地址”:“2018-06-11”,
“广告时间”:“19:01:06”
},
{
“地址”:“2018-06-11”,
“广告时间”:“19:14:26”
}
]
}
//为便于阅读而截断
]
$(函数(){
//为.each()的每个循环保存对表的引用,而不是查询DOM
变量$table=$(“#患者治疗体”)
var tableRows=[]
$.each(数据、函数(索引、值){
var$tr=$('');
var$pNameTd=$('').text(value.pname)
var$pCodeTd=$('').text(value.pcode)
var$pDosageTd=$('').text(value.pdosage)
var$pIdTd=$('').text(value.pid)
变量$pUseTd=$('')
$.each(value.puse,函数(index2,value2){
var$div=$('').text(value2.adDate+''+value2.adTime)
//将每个DIV放入TD中
$pUseTd.append($div)
})
//将所有TDs置于TR中
$tr.append([$pNameTd,$pCodeTd,$pDosageTd,$pIdTd,$pUseTd])
tableRows.push($tr)
})
//将所有TRs放在表中
$table.append(表格行)
})

名称
代码
剂量
身份证件
使用

你能把你的代码放到jfiddle中吗?@user979331,而不是建议使用像JSFiddle这样可以下载的非现场资源(因此这个问题变得毫无用处),相反,建议使用。也就是说,由于它依赖于AJAX调用,因此我认为它在任何可复制的环境中都不起作用,因此我保持了代码的原样并对其进行了清理。感谢您的回复,但我将使用Marlorn方法
<html>
  <table>
    <tr>
      <td>drug-001</td>
      <td>Abacavir (ABC) </td>
      <td>pdosage</td>
      <td class="test">
        <div>2018-06-11 19:01:06</div>
        <div>2018-06-11 19:01:06</div>
      </td>

    </tr>
  </table>
</html>
$.each(data, function(key, val) {
  $('table > tbody').append('<tr><td>' + val.pname + '</td><td>' + val.pcode + '</td> <td>' + val.pdosage + '</td><td>' + val.pdisc +
    '</td><td class="test"></td><td id="td' + val.pid + '"></td></tr>')
  console.log(val.puse);
  $.each(val.puse, function(key, valb) {
    $('table > tbody td:nth-child(4) ').append('<div>' + valb.adDate + " " + valb.adTime + '</div>')
  });
});