Rumah > Soal Jawab > teks badan
Saya cuba mendapatkan nilai semua baris di mana butang tidak diklik. Sebagai contoh, apabila saya mengklik butang pada baris pertama, saya ingin mendapatkan semula nilai baris yang tidak diklik.
var table = document.getElementById("all_department"); if (table != null) { for (var i = 0; i < table.rows.length; i++) { table.rows[i].onclick = function() { tableText(this); } } } function tableText(tableRow) { var myJSON = JSON.stringify(tableRow); console.log(myJSON); }
<table id="all_departments"> <thead> <th><button>click</button></th> <th>Departments</th> <th>Creation Date</th> <th>Name</th> </thead> <tbody class="bl"> <tr> <td><button>click</button></td> <td>Management</td> <td>2-3-2016</td> <td>client x</td> </tr> <tr> <td><button>click</button></td> <td>Sales</td> <td>25-6-2019</td> <td>client y</td> </tr> </tbody> </table>
P粉5613239752024-04-06 00:50:27
Anda boleh mendengar pengendali klik pada butang, dapatkan tr ibu bapa butang yang diklik, dan kemudian dapatkan butang adik-beradik.
Sebaik sahaja kami mempunyai semua adik-beradik, kami boleh mengulangi mereka dan membentuk rentetan yang terhasil.
Sila rujuk kod di bawah
const allBtns = document.querySelectorAll('button'); allBtns.forEach(function(btn) { btn.addEventListener('click', function(e) { let elem = this.closest('tr'); const siblings = getSiblings(elem); const result = []; siblings.map(ele => { ele.querySelectorAll('td').forEach((e, i) => { if (i !== 0) { result.push(e.innerText); } }); }); console.log(result.join(',')); }) }); const getSiblings = function(e) { let siblings = []; if (!e.parentNode) { return siblings; } let sibling = e.parentNode.firstChild; while (sibling) { if (sibling.nodeType === 1 && sibling !== e) { siblings.push(sibling); } sibling = sibling.nextSibling; } return siblings; };
Departments | Creation Date | Name | |
---|---|---|---|
Management | 2-3-2016 | client x | |
Sales | 25-6-2019 | client y |