Javascript 对HTML表中的每个元素应用IF条件
我的问题是: 我想用html中表的类“signalement”在所有td元素中用“Aucun”来更改0,但这样做有一些困难Javascript 对HTML表中的每个元素应用IF条件,javascript,html-table,Javascript,Html Table,我的问题是: 我想用html中表的类“signalement”在所有td元素中用“Aucun”来更改0,但这样做有一些困难 <table class="commentairesTableau"> <tr> <td>N°</td> <td>Pseudo</td> <td>Message</td>
<table class="commentairesTableau">
<tr>
<td>N°</td>
<td>Pseudo</td>
<td>Message</td>
<td>Date</td>
<td>Signalement</td>
<td>Validé</td>
<td>Actions</td>
</tr>
<?php
foreach ($comments as $comment) {
?>
<tr>
<td><?= htmlspecialchars($comment->getId()); ?></td>
<td><?= htmlspecialchars($comment->getPseudo()); ?></td>
<td><?= substr(htmlspecialchars($comment->getContent()), 0, 150); ?></td>
<td>Créé le : <?= htmlspecialchars($comment->getCreatedAt()); ?></td>
<td id="signalement"><?= htmlspecialchars($comment->signalement()); ?></td>
<td id="validation"><?= htmlspecialchars($comment->signalement()); ?></td>
<td>
<?php
if ($comment->signalement()) {
?>
<a class="btn btn-primary" href="index.php?route=unflagComment&commentId=<?= $comment->getId(); ?>">Désignaler le commentaire</a>
<p><a class="btn btn-primary" href="index.php?route=deleteComment&commentId=<?= $comment->getId(); ?>">Supprimer le commentaire</a></p>
<?php
} else {
?>
<p><a class="btn btn-primary" href="index.php?route=deleteComment&commentId=<?= $comment->getId(); ?>">Supprimer le commentaire</a></p>
<?php
}
?>
</td>
</tr>
<?php
}
?>
</table>
if (document.getElementById("signalement").innerHTML === "0") {
document.getElementById("signalement").innerHTML = "Aucun";
}
N°
伪
消息
日期
信号
有效的
行动
克雷勒:
if(document.getElementById(“signalement”).innerHTML==“0”){
document.getElementById(“信号”).innerHTML=“Aucun”;
}
“0”来自我的sql数据库中的一个布尔集合,此更改仅出现在多行上的第一个td行:
如果有人能告诉我哪里是我的错误,我可以如何修复它将是可怕的 首先,您可以对多个元素使用相同的id 除此之外,您提供的代码可能只选择所有所需的元素,但只对该类中第一个出现的元素起作用,这就是为什么您必须遍历每个出现的元素并进行检查的原因 我更喜欢使用
innerText
而不是innerHTML
。即使它们都会产生相同的输出,但它们都有自己的目的,对吗
以下是你要做的:
document.queryselectoral(“.signalement”).forEach(函数(项){
如果(item.innerText.trim()=“0”){
item.innerText=“Aucun”;
}
});代码>
0
1.
0
您不能在页面中重复ID,它们的定义是唯一的。改为类,然后使用该类循环所有元素
document.querySelectorAll('.signalement').forEach(el=>{
如果(el.textContent.trim()='0'){
el.textContent='Aucun'
}
});代码>
0
1.
0
为什么不使用php来实现呢?注意,元素ID的定义必须是唯一的。使用类来重复元素我已经用类尝试过了,但它根本不起作用,这个项目是供学校使用的,我有具体的说明,无法在我的php中修复它,这就是为什么我在这里发帖的原因。实际上,我的javascript很差,我有点迷路了。谢谢你回复Pranav,但它实际上不起作用,也许我必须更改代码中的一些内容?谢谢你的帮助,但问题现在已经通过一个非常相似的答案解决了,我只是看了答案之间的差异,它教会了我一些有趣的事情,我感谢你Pranav!