老师告诉我,我不能在php的循环中使用类的id,因为它将在具有相同id的多行中生成它,而id是唯一的。 这是真的 ?因为我尝试了它并且它起作用了 谢谢。 例如:
for ($j = 1; $j <= 9; ++$j)
{
if ($j % 2 == 0)
{
echo '<td class="pair" id="DiagP">' . $j .'</td>';
}
}
答案 0 :(得分:2)
工作,因为PHP会毫无问题地生成文件。
错误在某种意义上,根据HTML标准,ID必须与页面唯一。在这里,您创建的每个get_global_id
元素都具有相同的ID <td>
,因此您的HTML将无效。
id = name [CS]
此属性为元素指定名称。该名称在文档中必须是唯一的。
答案 1 :(得分:0)
它允许您生成具有相同ID的多个标签,但是您只能访问其中一个:第一个。
如果你不关心访问它们(通过javascript等),那么你就没有问题了(但在这种情况下,首先避免使用id会更容易,因为有多个是不好的做法具有相同ID的标签)。如果您确实需要根据其ID访问它们,则会遇到问题。
您可以自行测试:打开开发人员控制台(Chrome上为SHIFT + CTRL + I
)并运行document.getElementById("DiagP").value
,您将看到只获得j
的第一个值。希望这能解决困惑!
答案 2 :(得分:0)
您可以使用此代码。使用你的php变量来创建动态和唯一的id所以id不会相同。
<table>
<tr>
<?php
for ($j = 1; $j <= 9; ++$j) {
if ($j % 2 == 0) {
echo '<td class="pair test_'.$j.'" id="DiagP_' . $j . '">' . $j . '</td>';
}
} ?>
</tr>
</table>
您还可以添加动态类和固定类
{{1}}
也检查一下 Difference between id and class in CSS and when to use it
答案 3 :(得分:0)
你不能在内部使用id循环。因为它会产生多个id。和id是唯一的。而您的代码生成具有相同ID的多个td。这是错误的。
代码将有效。没有任何错误。但逻辑错了。当你在id上使用javascript或jquery时会产生问题。如果没有使用id。那没关系。但如果你想在任何地方使用id,那么代码如下。
for ($j = 1; $j <= 9; ++$j)
{
if ($j % 2 == 0)
{
echo '<td class="pair" id="DiagP'.$j.'">' . $j .'</td>';
}
}
因此它将为所有td创建不同的id。
答案 4 :(得分:0)
据我所知,身份证和班级不一样。
你不能说这个意思是“一个类的ID”。
它是ID id="someId"
或其CLASS class="someClass"
如果td
具有唯一格式或其他内容,请尝试将ID设为唯一:
https://developer.mozilla.org/nl/docs/Web/CSS/ID_selectors
for ($j = 1; $j <= 9; ++$j)
{
if ($j % 2 == 0)
{
echo '<td class="pair" id="DiagP_' . $j . '">' . $j .'</td>';
}
}
如果td
不必是唯一的,请使用类:
https://developer.mozilla.org/nl/docs/Web/CSS/Class_selectors
for ($j = 1; $j <= 9; ++$j)
{
if ($j % 2 == 0)
{
echo '<td class="pair" class="DiagP">' . $j .'</td>';
}
}
进一步阅读关于id与班级的比较