“if (location.href != example.com/page1 || example.com/page2)" Change-CSS-element

Wenn ich diese ähnlichen JS-code (die 2 sofort unten), meine Ausgabe ist falsch oder nicht zeigen.
Hier ist meines codes in Frage:

if (location.href != "website.com/page1" || "website.com/page2")
   {
     element.style.backgroundColor='none';
   }

oder mit != und !==

if (location.href != "website.com/page1" || location.href != "website.com/page2")
   {
     element.style.backgroundColor='none';
   }

Hier ist, wie ich im mit es mit dem anderen code (vereinfacht)

<script>
var element = document.getElementbyId('idElement');

if (location.href != "website.com/page1")
   {
     element.style.backgroundColor='blue';
   }
if (location.href != "website.com/page2")
   {
     element.style.backgroundColor='green';
   }
 //HERE'S WHERE I PUT IT
if (location.href != "website.com/page1" || "website.com/page2")
   {
     element.style.backgroundColor='none';
   }
 </script>

Entweder passiert nichts, oder das element nicht richtig funktioniert auf anderen Seiten.

Was mache ich falsch?

Mehr Info: ich mache eine Tumblr Thema, und es gibt Seiten, die haben bestimmte posten mit unterschiedlichen Eigenschaften betrachtet, auf verschiedenen Seiten. Ich habe diesen code in die Spitze.

Jemand Schlug vor, Dieses: GELÖST

<script>
     window.onload = function ()

 var element = document.getElementbyId('idElement');

 if (location.href != "website.com/page1" && location.href != "website.com/page2") 
    {
       element.style.backgroundColor='none'; 
    } 
  if (location.href == "website.com/page1") 
    {
       element.style.backgroundColor='blue'; 
    }
  if (location.href == "website.com/page2") 
        { 
       element.style.backgroundColor='green'; 
    }

</script> 
  • Verwenden Sie location.pathname location.href enthält die Domäne
  • Ein paar Ungleichheit Vergleiche wie, die, getrennt durch ein logisches "oder", wird immer wahr sein.
  • Das problem ist in der Logik der if-Anweisungen. Die 3. if (der code in Frage) wird nie erreicht, denn wenn die href ist Seite1, es trifft der 2.if, und wenn die href ist page2 es trifft der 1.if, und wenn Ihr irgendetwas anderes, es trifft immer die 1.if. Sie müssen, um Sie if/else if/else Anweisungen, um die korrekte Ausgabe und setzen der 3. if als die erste if-Anweisung, gefolgt von den anderen zwei.
  • Wie würden Sie das tun, @straker?
  • Ich sehe deinen code ändern, tut mir Leid ich habe nicht mein Vorschlag klar genug. Was ich damit sagen will, war dies: var element = document.getElementbyId('idElement'); if (location.href != "website.com/page1" || location.href != "website.com/page2") { element.style.backgroundColor='none'; } else if (location.href != "website.com/page1") { element.style.backgroundColor='blue'; } else { element.style.backgroundColor='green'; } Anscheinend kann man nicht hinzufügen-code sehr einfach in die Kommentare...
  • Außerdem sollten Sie die || in && wie bereits erwähnt, die || wird immer wahr sein.
  • Danke @straker! Ich löste es. Ich verwendet, wenn Anweisungen anstelle von if-else.

InformationsquelleAutor BVSK | 2013-10-16
Schreibe einen Kommentar