包括ID为两倍的div,可能吗?

时间:2011-10-05 09:34:02

标签: php javascript

我想要包含一个文件(menu.php)两次,但在该文件中我有一个带ID的div。 这是menu.php:

<?php
    for ($b = 1; $b <= 10; $b++)
    {
        $width = 220;
        $width /= $b;
?>
    <div id="menuH<?php print $b; ?>" style="display: none;">
    <?php
        for ($a = 1; $a <= $b; $a++)
        {
            print '<div class="voorbeeld_menuH" style="width: '.($width - 1).'px;" ><b>M</b></div>';
        }
    ?>
    </div>
<?php
    }
    for ($b = 1; $b <= 10; $b++)
    {
?>
        <div id="menuV<?php print $b; ?>" style="display: none;">
        <?php
            for ($a = 1; $a <= $b; $a++)
            {
                print '<div class="voorbeeld_menuV" ><b>M</b></div>';
            }
        ?>
        </div>
<?php
    }
?>

Javascript代码:

function menu(dropdown)
{
    var myindex_M = dropdown.selectedIndex;
    var waarde_M = dropdown.options[myindex_M].value;
    var i = 1;
    var a = 1;

    if(waarde_M == " - - - -")
    {
        for(i = 1;1 <= 10;i++)
        {    
            document.getElementById("menuH" + i).style.display = "none";
            document.getElementById("menuV" + i).style.display = "none";
        }
    }
    for(i = 1;i <= 10;i++)
    {
        if(waarde_M == "Menu H " + i)
        {
            document.getElementById("menuH" + i).style.display = "";
            for(a = 1;a <= 10;a++)
            {
                if(a == i) { continue; }
                document.getElementById("menuH" + a).style.display = "none";
            }   
        }
    }
}

我希望将其包括在内:

<?php
    include("Menu.php");

    for ($b = 1; $b <= 5; $b++)
    {
?>
        <div id="content" style="display: none;">
        <?php
            for ($a = 1; $a <= $b; $a++)
            {
                print '<div class="voorbeeld_content'.$b.'"><b>Content</b></div>';
            }
        ?>
        </div>
<?php
    }
?>

也包含在这里:

<?php
    include("Menu.php");

    for ($b = 1; $b <= 5; $b++)
    {
?>
        <div id="header" style="display: none;">
        <?php
            for ($a = 1; $a <= $b; $a++)
            {
                print '<div class="vooorbeeld_header.$b.'"><b>H</b></div>';
            }
        ?>
        </div>
<?php
    }
?>

问题是,javascript代码仅适用于menu.php,而不适用于content.php和header.php,因为ID标记,我该如何解决?

3 个答案:

答案 0 :(得分:0)

id has to be unique。总是。就这样。更改你的代码,以便为menue的不同内容提供不同的id,或者改为使用类。

引用W3C

  

属性定义

     

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

答案 1 :(得分:0)

您不能将相同的ID赋予相同类型的控件或其他类型的控件。这是它的独特身份。你必须以一种每个控件在网页中都有唯一ID的方式更改代码......

答案 2 :(得分:0)

页面上不能有两个或多个具有相同ID的元素。 JavaScript不会选择这两个元素,因为ID必须是唯一的。尝试找到一种在元素上放置唯一ID的方法。