如何加粗一行表格中未读文本,以及如何使用JavaScript在已读文本中取消加粗

yeotifhr  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(129)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
20小时前关闭。
Improve this question
我试图加粗我行中的文本,当它已经像gmail邮件一样点击时取消加粗。在特定行上,当单击文本时,该行的文本将取消粗体。

<td ><a  href="/webmcr/birthverifyview/<?=$veri['rreg_transactcode']?>" class="stretched-link" style="text-decoration: none; color: black;"><?= $veri['rreg_transactcode'] ?></a></td>
                                                            <td><?= $veri['rb_fname'] ?> <?= $veri['rb_mname'] ?> <?= $veri['rb_lname'] ?> </td>
                                                            <td><?= $veri['rb_createdat'] ?></td>

下面是我的行的例子,我想在它打开时得到粗体和非粗体

dced5bon

dced5bon1#

绑定单击事件,然后在事件处理程序函数上使用CSS取消文本的粗体。下面是示例代码:

const messageIds = JSON.parse(localStorage.getItem("messageIds"));
var messageIdsArr = messageIds ? Array.from(messageIds) : [];

document.querySelectorAll("td").forEach((td) => {
  // Check if message already read or not
  if (messageIdsArr.length && messageIdsArr.includes(td.getAttribute("id"))) {
    td.style.fontWeight = "normal";
  } else {
    td.addEventListener("click", removeBold);
  }
});

function removeBold(e) {
  const target = e.currentTarget;
  target.style.fontWeight = "normal";

  // Update the LocalStorage
  messageIdsArr.push(target.getAttribute("id"));
  localStorage.setItem("messageIds", JSON.stringify(messageIdsArr));
}
td{
  border: 1px solid black;
  font-weight: bold;
  cursor: pointer;
}
<table>
  <thead></thead>
  <tbody>
    <tr>
       <td id="1">Message 1</td>
       <td id="2">Message 2</td>
       <td id="3">Message 3</td>
    </tr>
  </tbody>
 </table>

每个消息都有唯一的ID。然后使用localStorage保存已读取消息的id。因此,即使在页面加载时,已读消息也不会加粗。

注意,代码不会在stackoverflow snippet上运行,因为snippet中的localStorage受到限制。但会工作得很好,在snippet之外。希望对大家有帮助。

相关问题