Reputation: 317
Hi I want to get the first and second row and get the text or element on the first two td. I used the td:first but I got all text of the td. I think I may use nth-childe-selector so I search on the web. :nth-child() Selector . However I don't know how to apply on my code. Can someone tell me how to do it. Thanks in advance.
function test(Id) {
var panel = $('#' + Id);
var firstRow = panel.closest('tr');
var firstTD = firstRow.find('td:first');
alert(firstTD.text());
var secondRow = firstRow.closest('tr');
}
Upvotes: 0
Views: 78
Reputation: 18975
You can use
let firsttr = $('#test tr:first');
to get first row
and let secondtr = $('#test tr:nth-child(2)');
to get second row
and use find
method to get td
function getFistTdValue(){
let firsttr = $('#test tr:first');
let firsttd = firsttr.find("td:eq(0)").text();
alert(firsttd);
let secondtr = $('#test tr:nth-child(2)');
let secondtd = secondtr.find("td:eq(0)").text();
alert(secondtd);
}
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>HTML Table</h2>
<table id="test">
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
</table>
<button onclick="getFistTdValue()">Test</button>
</body>
</html>
Upvotes: 0