php中循环内的类ID(html)

php中循环内的类ID(html),php,html,Php,Html,老师告诉我,我不能在php的循环中使用类的id,因为它将在多行中使用相同的id生成它,而id是唯一的。 这是真的吗?因为我试过了,而且成功了 谢谢 例如: for ($j = 1; $j <= 9; ++$j) { if ($j % 2 == 0) { echo '<td class="pair" id="DiagP">' . $j .'</td>'; } } for($j=1;$j它的工作原理是PHP将毫无

老师告诉我,我不能在php的循环中使用类的id,因为它将在多行中使用相同的id生成它,而id是唯一的。 这是真的吗?因为我试过了,而且成功了 谢谢 例如:

for ($j = 1; $j <= 9; ++$j)
{
    if ($j % 2 == 0)
    {
        echo '<td class="pair" id="DiagP">' . $j .'</td>';
    }

}       
for($j=1;$j它的工作原理是PHP将毫无问题地生成文件

根据HTML标准,id在页面中必须是唯一的,这是错误的。在这里,您创建的每个
元素都有相同的id,
DiagP
,因此HTML将无效

参考:

id=名称[CS]

此属性为元素指定名称。此名称在文档中必须是唯一的


它将允许您生成具有相同id的多个标记,但是您只能访问其中一个:第一个

如果您不关心访问它们(通过javascript或类似的方式),那么您就没有问题(但在这种情况下,首先避免使用id会更容易,因为使用相同id的多个标记是一种不好的做法)。如果您确实需要根据它们的id访问它们,您将遇到问题

你可以自己测试:打开开发者控制台(
SHIFT+CTRL+I
在chrome上),运行
document.getElementById(“DiagP”).value
,你会发现你只得到了
j
的第一个值。希望这能消除混淆

  • 您需要为同一页使用唯一id。但您可以多次使用同一类名
  • 若您多次使用相同的id,那个么您不能使用jquery、javascript等获取值、选择等。但当您需要获取相同的所有数据时,您可以使用类、选择等
  • 您可以使用此代码。使用php变量创建动态唯一id,这样id就不会相同

    <table>
    <tr>
        <?php
        for ($j = 1; $j <= 9; ++$j) {
            if ($j % 2 == 0) {
                echo '<td class="pair" id="DiagP_' . $j . '">' . $j . '</td>';
            }
    
        } ?>
      </tr>
      </table>
    
    
    
    您还可以添加动态类和固定类

    <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>
    
    
    
    也检查一下这个

    您不能在循环中使用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>';
                        }
    
           }  
    

    for($j=1;$j据我所知,ID和类是不同的

    在这个意义上,你不能说“类的ID”

    它要么是一个ID
    ID=“someId”
    要么是一个CLASS
    CLASS=“someClass”

    如果
    td
    具有唯一的格式或其他内容,请尝试使id唯一:

    关于id与类的进一步阅读


    是的,如果您想使您的id唯一,只需将
    $j
    附加到您的id值中即可。
    id=“DiagP$j”
    请删除此无值问题,并阅读ids手册。如果您尝试使用代码,您将看到许多不同的td标记具有相同的id。您的代码在PHP端很好,但在html端则不好,在JS中使用id可能会遇到问题。使用类而不是id可能更好,特别是因为它会在当你尝试与这些元素交互时,一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访问者。
    for ($j = 1; $j <= 9; ++$j)
    {
        if ($j % 2 == 0)
        {
            echo '<td class="pair" id="DiagP_' . $j . '">' . $j .'</td>';
        }
    
    }
    
    for ($j = 1; $j <= 9; ++$j)
    {
        if ($j % 2 == 0)
        {
            echo '<td class="pair" class="DiagP">' . $j .'</td>';
        }
    
    }