[英]How do i get the text of each td in each tr of each tables using Jquery?
How do i get the text of each td
in each tr
of each table
?我如何获取每个table
每个tr
中每个td
的文本?
i tried the code below but didn't work as expected.我尝试了下面的代码,但没有按预期工作。
HTML CODE代码
$(function () { $("[id*=btn").click(function () { var array1 = []; $(".normaltable").each(function (index, object) { var tableData = {}; tableData.datetime = $(this).find('td').eq(0).text().trim(); tableData.item = $(this).find('td').eq(1).text().trim(); tableData.p1 = $(this).find('td').eq(2).text().trim(); tableData.nt = $(this).find('td').eq(3).text().trim(); array1.push(tableData); }); alert(JSON.stringify(array1)); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <h2 class="title">Group A</h2> <table class="normaltable"> <thead> <tr class="header0"> <th class="datetime first">Date</th> <th class="item">Item</th> <th class="p1">P1</th> <th class="nt">NT</th> </tr> </thead> <tbody> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Rice</span></span></a></td> <td class="p1 ">0:1</td> <td class="nt ftx">3:1</td> </tr> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Meat</span></span></a></td> <td class="p1 ">0:2</td> <td class="nt ftx ">8:1</td> </tr> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Wheat</span></span></a></td> <td class="p1 ">0:1</td> <td class="nt ftx ">3:1</td> </tr> </tbody> </table> <h2 class="title">Group B</h2> <table class="normaltable"> <thead> <tr class="header0"> <th class="datetime first">Date</th> <th class="item">Item</th> <th class="p1">P1</th> <th class="nt">NT</th> </tr> </thead> <tbody> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Beans</span></span></a></td> <td class="p1 ">1:1</td> <td class="nt ftx ">2:1</td> </tr> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Water</span></span></a></td> <td class="p1 ">3:1</td> <td class="nt ftx ">1:1</td> </tr> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"><a><span class="tm"><span >Melon</span></span></a></td> <td class="p1 ">4:1</td> <td class="nt ftx ">5:1</td> </tr> </tbody> </table> <input type="button" value="Click" id="btn" />
I got this我懂了
[
{"datetime":"09/01/20 19:33","item":"Rice","p1":"0:1","nt":"3:1"},
{"datetime":"10/01/20 19:33","item":"Beans","p1":"1:1","nt":"2:1"}
]
I expected this我期待这个
[
{"datetime":"09/01/20 19:33","item":"Rice","p1":"0:1","nt":"3:1"},
{"datetime":"09/01/20 19:33","item":"Meat","p1":"0:2","nt":"8:1"},
{"datetime":"09/01/20 19:33","item":"Wheat","p1":"0:1","nt":"3:1"},
{"datetime":"10/01/20 19:33","item":"Beans","p1":"1:1","nt":"2:1"},
{"datetime":"10/01/20 19:33","item":"Water","p1":"3:1","nt":"1:1"},
{"datetime":"10/01/20 19:33","item":"Melon","p1":"4:1","nt":"5:1"}
]
From what I can understand all you really need to change is $(".normaltable").each(function(index, object) {
to $(".normaltable tbody tr").each(function(index, object) {
then you should get what you wish.据我所知,你真正需要改变的是$(".normaltable").each(function(index, object) {
到$(".normaltable tbody tr").each(function(index, object) {
then你应该得到你想要的。
Demo演示
$(function() { $("[id*=btn").click(function() { var array1 = []; $(".normaltable tbody tr").each(function(index, object) { var tableData = {}; tableData.datetime = $(this).find('td').eq(0).text().trim(); tableData.match = $(this).find('td').eq(1).text().trim(); tableData.p1 = $(this).find('td').eq(2).text().trim(); tableData.nt = $(this).find('td').eq(3).text().trim(); array1.push(tableData); }); console.log(JSON.stringify(array1)); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table class="normaltable"> <thead> <tr class="header0"> <th class="datetime first">Date</th> <th class="item">Item</th> <th class="p1">P1</th> <th class="nt">NT</th> </tr> </thead> <tbody> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Rice </span> </span> </a> </td> <td class="p1 ">0:1</td> <td class="nt ftx">3:1</td> </tr> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Meat </span> </span> </a> </td> <td class="p1 ">0:2</td> <td class="nt ftx ">8:1</td> </tr> <tr class="rw"> <td class="datetime">09/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Wheat </span> </span> </a> </td> <td class="p1 ">0:1</td> <td class="nt ftx ">3:1</td> </tr> </tbody> </table> <h2 class="title">Group B</h2> <table class="normaltable"> <thead> <tr class="header0"> <th class="datetime first">Date</th> <th class="item">Item</th> <th class="p1">P1</th> <th class="nt">NT</th> </tr> </thead> <tbody> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Beans </span> </span> </a> </td> <td class="p1 ">1:1</td> <td class="nt ftx ">2:1</td> </tr> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Water </span> </span> </a> </td> <td class="p1 ">3:1</td> <td class="nt ftx ">1:1</td> </tr> <tr class="rw"> <td class="datetime">10/01/20 19:33</td> <td class="item"> <a> <span class="tm"> <span > Melon </span> </span> </a> </td> <td class="p1 ">4:1</td> <td class="nt ftx ">5:1</td> </tr> </tbody> </table> <button id="btn1">run</button>
First try to find every table whom have same class name normalTable
.首先尝试找到每个具有相同类名normalTable
。 Then try to find each row of the each table.然后尝试找到每个表的每一行。 After getting rows try to find text of td
then store it in array
获取行后尝试查找td
文本,然后将其存储在array
var array1 = []; $('.normalTable tbody tr').each(function() { var $tds = $(this).find('td'); if($tds.length != 0) { var $currText = $tds.eq(0).text(); array1.push($currText); } });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.