2009-04-28 7 views
0

Ich habe versucht, ein simialr Beispiel zu finden und das zu verwenden, um mein Problem zu beantworten, aber ich kann nicht scheinen, es zur Arbeit zu bringen, so Entschuldigungen, wenn das ähnlich zu anderen Problemen klingt.Hinzufügen eines Ankers zu generierten URLs

Grundsätzlich verwende ich Site Manager CMS von Terminal Four, um meine Websites zu erstellen. Mit diesem Tool können Sie Navigationselemente erstellen, die Sie auf Ihrer Website verwenden können.

Ich muss ein benutzerdefiniertes Bit von JS hinzufügen, um an diese Links einen Anker anzuhängen.

Die sind generierten Links ähnlich wie diese:

<ul id="tab-menu"> 
<li><a href="/section/page">test link, can i rewrite and add an anchor!!!</a></li> 
</ul> 

ich die CSS-Eigenschaften der Verbindung bearbeiten können, aber ich kann nicht herausfinden, wie ein Anker hinzuzufügen.

Die JQuery Ich verwende ist wie folgt:

<script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    // everything goes here 

    $("#tab-menu").children("li").each(function() { 
     $(this).children("a").css({color:"red"}); 

     }); 

    }); 
</script> 

Vielen Dank im Voraus für jede Hilfe.

Paddy

+0

Gute Frage versuchen, aber wie man es ohne jQuery macht? – JohnK

Antwort

1

Eine nette jQuery-basierte Methode ist es, die .get (Index) Methode zu verwenden, um das rohe DOM-Element innerhalb Ihrer jeweiligen() Funktion zuzugreifen. Dies gibt Ihnen dann Zugriff auf das JavaScript-Link-Objekt, das eine Eigenschaft namens "Hash" hat, die den Anker-Teil einer URL darstellt. So zur Änderung der Code leicht:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    // everything goes here 

     $("#tab-menu").children("li").children("a").each(function() { 
      $(this).css({color:"red"}).get(0).hash = "boom"; 
     }); 

    }); 

Würden alle Links ändern in "#tab_menu li" auf rot, und befestigen "#boom" bis zum Ende.

Hoffe, das hilft!

+0

Danke, das funktioniert perfekt. Paddy –

+0

Kühl. Wie könnte man es ohne jQuery machen? – JohnK

0

ich unter Verwendung der HTML-Ziel kann nun zurück die folgenden:

$(this).children("a").html("it works"); 

ich als sumed das:

$(this).children("a").href("something"); 

würde die href bearbeiten, aber ich bin falsch.

Paddy

+0

Verwenden Sie etwas wie $ (this) .children ("a"). Attr ("href", "etwas") und Ihnen geht es gut. – moff

0

ich für die Antwort nicht sicher bin, DINT I

$("#tab-menu").children("li").children("a").each(function() { 
       // $(this).css({color:"red"}).get(0).hash = "boom"; 
      var temp_url = $(this).href +'#an_anchor';//or var temp_url = $(this).attr('href'); 
      $(this).attr('href', temp_url); 
    });