2017-11-16 1 views
-1

Ich wollte die ID der aktiven Registerkarte erhalten. Mein Code funktioniert nicht. HilfeErhalte die ID des Elements

//if it's the second tab, refresh it 
 
var liID = $('#menu').hasClass('active').attr(id); 
 
console.log(liID);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul class="nav nav-tabs" role="tablist" id="menu"> 
 
    <li role="presentation" class="active"> 
 
    <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> 
 
     <span class="round-tab"> 
 
           <i class="fa fa-archive"></i> 
 
          </span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> 
 
     <span class="round-tab"> 
 
           <i class="glyphicon glyphicon-pencil"></i> 
 
          </span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> 
 
     <span class="round-tab"> 
 
           <i class="glyphicon glyphicon-ok"></i> 
 
          </span> 
 
    </a> 
 
    </li> 
 
</ul>

+5

Haben Sie die Konsole gelesen? Die Fehlermeldung ist als Tag gelöscht. – epascarello

Antwort

1

Sie nicht die li Auswahl, die aktiv ist und Sie fehlen Zitate. Sie überprüfen, ob das Element "menu" aktiv ist und Sie den Wert gelesen haben.

$('#menu').find('.active').attr('id') 

oder

$('#menu .active').attr('id') 
1

id müssen in Anführungszeichen gesetzt werden, sonst ist es gedacht, als eine Variable, die Sie haben nicht erklärt.

Als nächstes Ihr Versuch, die ID zu bekommen, ist falsch, da .hasClass() einen Booleschen Wert zurück, nicht das Element, das die Klasse hat, so .attr() auf dem Rückgabewert Aufruf fehl.

Schließlich hat Ihr active Element nicht einmal und id sowieso.

Hier ist eine korrigierte Version:

//if it's the second tab, refresh it 
 
if($('#menu li').hasClass('active')){ 
 
    var liID = $('#menu li.active').attr("id"); 
 
    console.log(liID); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul class="nav nav-tabs" role="tablist" id="menu"> 
 
    <li role="presentation" class="active" id="HELLO"> 
 
    <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> 
 
     <span class="round-tab"><i class="fa fa-archive"></i></span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> 
 
     <span class="round-tab"><i class="glyphicon glyphicon-pencil"></i></span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> 
 
     <span class="round-tab"><i class="glyphicon glyphicon-ok"></i></span> 
 
    </a> 
 
    </li> 
 
</ul>

Aber wirklich, sollte dies noch einfacher sein:

// Just query for the active element and then use it: 
 
console.log($('#menu li.active').attr("id"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul class="nav nav-tabs" role="tablist" id="menu"> 
 
    <li role="presentation" class="active" id="HELLO"> 
 
    <a href="#container" data-toggle="tab" aria-controls="step1" role="tab" title="Container"> 
 
     <span class="round-tab"><i class="fa fa-archive"></i></span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#parameters" data-toggle="tab" aria-controls="step2" role="tab" title="Parameters"> 
 
     <span class="round-tab"><i class="glyphicon glyphicon-pencil"></i></span> 
 
    </a> 
 
    </li> 
 
    <li role="presentation" class="disabled"> 
 
    <a href="#results" data-toggle="tab" aria-controls="step3" role="tab" title="Results"> 
 
     <span class="round-tab"><i class="glyphicon glyphicon-ok"></i></span> 
 
    </a> 
 
    </li> 
 
</ul>

1

Wrap-ID wit h Zitat. hasClass gibt einen booleschen Wert zurück. Also

wird LiID ID eines li Element mit einem übergeordneten "Menü" und mit Klasse aktiv, falls vorhanden.

Verwandte Themen