php中循环内的类(html)的ID

时间:2017-03-15 12:40:48

标签: php html

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

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

}       

5 个答案:

答案 0 :(得分:2)

工作,因为PHP会毫无问题地生成文件。

错误在某种意义上,根据HTML标准,ID必须与页面唯一。在这里,您创建的每个get_global_id元素都具有相同的ID <td>,因此您的HTML将无效。

参考:W3C HTML standard

  

id = name [CS]

     

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

答案 1 :(得分:0)

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

如果你不关心访问它们(通过javascript等),那么你就没有问题了(但在这种情况下,首先避免使用id会更容易,因为有多个是不好的做法具有相同ID的标签)。如果您确实需要根据其ID访问它们,则会遇到问题。

您可以自行测试:打开开发人员控制台(Chrome上为SHIFT + CTRL + I)并运行document.getElementById("DiagP").value,您将看到只获得j的第一个值。希望这能解决困惑!

答案 2 :(得分:0)

  1. 您需要为同一页面使用唯一ID。但你可以使用相同的班级名称多次
  2. 如果你在多个中使用相同的id,则无法获得值,使用jquery,javascript等选择等,但是当你需要获取相同的所有数据时,你可以使用class,选择等
  3. 您可以使用此代码。使用你的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与班级的比较

https://css-tricks.com/the-difference-between-id-and-class/