2016-05-27 8 views
0

In HTML-Seite habe ich eine div-reportControlPanel wie unten. Ich habe ein anderes als dasselbe mit unterschiedlicher Identifikation eingeschlossen.DIV-Inhalt ausblenden/anzeigen basierend auf URL

<div id="reportControlPanel" class="pentaho-rounded-panel-bottom-lr pentaho-shadow"> 
<div id="promptPanel" class="pentaho-rounded-panel-bottom-lr"></div> 
</div> 

<div id="reportControlPanel1" class="pentaho-rounded-panel-bottom-lr pentaho-shadow"> 
<div id="promptPanel" class="pentaho-rounded-panel-bottom-lr"></div> 
</div> 

Hier Am anzeigen/ausblenden div's basierend auf url Uhr ausgelöst wird.

if(prptName == "css.prpt") 
{ 
alert("if"); 
document.getElementById("reportControlPanel").style.display = 'none'; 
document.getElementById("reportControlPanel1").style.display = 'block'; 
} 

Aber wie ist mit gleicher Unter Div- promptPanel unter zwei verschiedenen div meine Inhalte nicht richtig geladen ist. promptPanel ist pentaho system verwendet div. Ich versuche, eine andere div zu haben, um einige css für meine zu ändern.

Danke.

+6

Ein id auf der Seite eindeutig sein soll. Nur ein Element sollte die ID 'promptPanel' haben. Um mehrere Elemente mithilfe einer gemeinsam genutzten Eigenschaft zu targetieren, können Sie eine 'Klasse' verwenden, z. B.' pentaho-gerundet-Panel-bottom-lr'. –

+0

Können Sie Jquery verwenden? Du könntest die ID später hinzufügen wie: '$ ('.pentaho-gerundet-panel-unten-lr> div') .attr ('id', 'promptPanel');' abhängig davon, welches DIV tatsächlich geladen wurde (abhängig von der url) – LordNeo

+0

Das ID-Attribut gibt eine eindeutige ID für ein HTML-Element an (der Wert muss innerhalb des HTML-Dokuments eindeutig sein). – Shrabanee

Antwort

0

Um noch einmal zu wiederholen, was Moishe schon zu dir gesagt hat: id sollen einzigartig sein. Sie haben derzeit zwei promptPanel IDs, was bedeutet, dass der zweite wahrscheinlich nie aufgerufen wird. Nun könnten Sie Javascript verwenden, aber mit minimalem Wissen darüber, wie Ihr Code aussieht, könnten Sie eine einfache Hash-URL und einige grundlegende CSS verwenden.

$(document).ready(function() { 
 
    $('a').click(function() { 
 
    $('#url').html($(this).prop('href')); 
 
    }); 
 
});
div.pentaho-rounded-panel-bottom-lr { 
 
    display: none; 
 
} 
 
div.pentaho-rounded-panel-bottom-lr .pentaho-rounded-panel-bottom-lr { 
 
    display: block; 
 
} 
 
:target { 
 
    display: block !important; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="url"></div> 
 
<a href="#reportControlPanel1">"Open" panel 1</a> 
 
<a href="#reportControlPanel2">"Open" panel 2</a> 
 
<div id="reportControlPanel1" class="pentaho-rounded-panel-bottom-lr pentaho-shadow"> 
 
    <div id="promptPanel" class="pentaho-rounded-panel-bottom-lr"> 
 
    this is some text in the first control panel. 
 
    </div> 
 
</div> 
 

 
<div id="reportControlPanel2" class="pentaho-rounded-panel-bottom-lr pentaho-shadow"> 
 
    <div id="promptPanel" class="pentaho-rounded-panel-bottom-lr"> 
 
    this is some text in the second control panel 
 
    </div> 
 
</div>

+0

Eigentlich ist promptPanel eine ID, die von Pentaho S/W verwendet wird, um die Parameter im Reportpanel anzuzeigen. Ich soll diese div id nicht bearbeiten. Ich brauche ein ähnliches div für mein prpt (Datei), wo ich einige CSS Änderungen vornehmen möchte. Css wird in den Standard-Penatho-Systemdateien angegeben, in denen ich reportControlPanel1 css hinzufügen kann. – user3007361

+0

Hauptsache ist, dass ich die css-Eigenschaft basierend auf der URL ändern muss. Ich sollte nicht das Standard-Div-Reportcontrolpanel bearbeiten, das die anderen Benutzer, die Pentaho-Berichte verwenden, betrifft. – user3007361

+0

Wenn Sie mein Beispiel auf einer vollständigen Webseite ausprobieren würden, würden Sie sehen, dass sich der Standort ändert, wenn Sie auf einen dieser beiden Links klicken, um den Ort zu simulieren, den Sie per URL eingeben würden. – Jhecht