2017-10-19 8 views
0

Lorsque vous avez deux div avec le même identifiant dans les onglets d'amorçage, est-il normal qu'il n'en active qu'un seul?Afficher le contenu deux fois - Onglets Bootstrap

Le code

<ul> 
    <li><a data-toggle="tab" href="#id1" aria-expanded="false">ID1</a><li> 
    <li><a data-toggle="tab" href="#id1" aria-expanded="false">ID1</a><li> 
</ul> 
<div class="tab-content"> 
    <div id="id1"> 
     Hello 
    </div> 
    <div id="2"> 
     Hello Again :) 
    </div> 
    <div id="2"> 
     OMG Hello Again :) 
    </div> 
</div> 

Mais quand je clique sur ID2, je ne vois le contenu du premier div, en ignorant l'autre, est-ce normal?

+3

Ne pas double ID si vous voulez vraiment avoir double nom d'utilisation d'identifiant ou de la classe –

+0

Comment vous attendez travailler? Actuellement, votre HTML ne produit même pas d'onglets bootstrap et le 'href' pointe vers' id1'. –

+0

Considérez "normal" que vous pourriez obtenir des résultats inattendus, si vous violez les règles de base. Que les ids _must_ soient uniques dans un document est l'un d'eux en HTML. – CBroe

Répondre

2

Oui, c'est normal car vous utilisez le même id pour plusieurs divs qui font disparaître l'autre diov. Vous devriez ne jamais le faire.

Pour ce faire, vous pouvez envelopper votre div dans un parent et lui donner id=2

<ul> 
    <li><a data-toggle="tab" href="#id1" aria-expanded="false">ID1</a><li> 
    <li><a data-toggle="tab" href="#id1" aria-expanded="false">ID1</a><li> 
</ul> 
<div class="tab-content"> 
    <div id="id1"> 
     Hello 
    </div> 
    <div id="2"> 
     <div> Hello Again :) </div> 
     <div> OMG Hello Again :) </div> 
    </div> 
</div> 
+0

Vous ne pouvez pas avoir le même ID pour plusieurs éléments. Et si quelqu'un d'autre le fait, alors s'il-vous-plaît, transmettez-le lui aussi. :) – void

+0

Vous pouvez utiliser le même ID deux fois, vous n'êtes pas SUPPOSÉ, car les méthodes JavaScript comme 'document.getElementById (str)' ne renverront que le premier élément correspondant. Il y a des solutions de contournement, oui, mais la solution correcte est simplement d'utiliser des classes au lieu des ID si la répétition est attendue. Ne forcez pas une cheville carrée dans un trou rond. – Blazemonger

+0

Exactement 'parce que les méthodes JavaScript comme document.getElementById (str) ne retourneront que le premier élément correspondant', vous ne devriez pas utiliser d'identifiants en double. N'encouragez jamais une mauvaise pratique simplement parce qu'elle ne fait pas de mal! – void