Meddelande

Minska
No announcement yet.

[jquery] hjälp med add id till <h4>-element

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • [jquery] hjälp med add id till <h4>-element

    Hej, är skapligt ny till både javascript och Jquery, håller just nu på att skappa en kod som ska göra en lista/meny av massa h4-element som finns på en och samma html sida och sedan länka till den rubriken. har lyckats skapa listan/menyn och får den att länka till texten av rubrikerna, mitt problem är att lägga till en ID (som inte får göras i html-koden) som ska ha samma namn som <h4> rubrikerna så att länkarna tar en till den ID/rubriken, Här nedan kommer mitt försök, vad gör jag för fel? hur löser jag detta?

    Kod:
    $(document).ready(generateMenu);
    
    function generateMenu() {
    
    
    $("#meny > .contentarea").append( "Klicka för att hämta recept" );
    $("#meny > .contentarea").append( "<ul>" );
    var antal = $("#primarycontent > .post").length;
    
    
    $("#primarycontent > .post h4").each(function(i) {
    $("#primarycontent > .post h4").attr('id', $(this).text());
    $("#meny > .contentarea > ul").append("<li><a href='#" + $(this).text() + "'>" + $(this).text() + "</a></li>");
    
    
    });
    }

  • #2
    varje gång each körs så kommer den leta upp alla h4 om och om igen och sätta samma id på samtliga h4r det du vill göra är något i stil med:
    [kod]function generateMenu() {
    var menuContent = $("#meny > .contentarea").append( "Klicka för att hämta recept" );
    var ul = $("<ul>");
    var liList = [];

    $("#primarycontent > .post h4").each(function(i) {
    var that = $(this).attr('id', "post_" + i);
    liList.push("<li><a href='#post_" + i + "'>" + that.text() + "</a></li>");
    });

    ul.html( liList.join('') );
    menuContent.append( ul );
    }[/kod] Varför har jag #post_xx som id, för jag gissar på att alla dina rubriker kan innehålla mellanslag, vilket ID inte få innehålla.
    "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

    Kommentera


    • #3
      ohh, det där ser ut att fungera finfint, kan du lägga till kommentarer eller skriva hur det fungerar uppifrån och ner (hur koden läses)? förstår det mesta men vill vara säker på att jag förstår allt, så jag lär mig något ^^

      Kommentera


      • #4
        Den skapar upp en ny ul lista och loopar igenom alla dina h4 element och för varje element den kör igenom (h4) så sätter den dess id till post_xx och lägger in en sträng in i en array, när loopen är körd så så sätter den ihop arrayn till en ända lång sträng och sätter den nya ul-elementets HTML till den tillslut så lägger den in den nya ul listan längst ner i .contentarea.
        "det går inte att lära en gammal norrlänning byta namn på irc" - gammalt kinesiskt uttryck

        Kommentera

        Working...
        X