テーブル内で行が選択されたときに左右の境界線を作成する次のコードがあります。私は、行が現在選択されているときにのみボーダーを表示し、選択されていないときには表示しないようにします。次の行が選択されたときに、以前に選択されたテーブル行を消去します。
私はモックアップを添付:この機能を使用してください
function addRowHandlers() {
var table = document.getElementById("example");
var rows = table.getElementsByTagName("tr");
for (i = 0; i < rows.length; i++) {
var currentRow = table.rows[i];
var createClickHandler =
function(row) {
return function() {
var cell = row.getElementsByTagName("td")[0];
row.getElementsByTagName("td")[0].style.backgroundColor = "white";
row.firstElementChild.style.borderLeft = "black solid 2px";
row.lastElementChild.style.borderRight = "black solid 2px";
var id = cell.innerHTML;
alert("id:" + id);
};
};
currentRow.onclick = createClickHandler(currentRow);
}
}
window.onload = addRowHandlers();
tr td:first-child { border-left:2px solid transparent;}
tr td:last-child { border-right:2px solid transparent;}
<div>
<table id="example">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
</div>
まず第一に、あなたはかなりのクラスを設定し、代わりのスタイルを直接操作する必要があります。そして、もちろん、新しいものが選択されたときに、以前に選択された行からそのスタイルを削除する必要があります。現在の行に設定する前に_all_行をループして削除してください。または前の行への参照を変数に格納します。 – CBroe
私はそれを集めましたが、それをするために何か助けが必要ですか? – Harriet
具体的には何ですか?すでにすべての行を一度ループしているので、すでにその行を知っています。 – CBroe