2017-05-06 4 views
0

Ich arbeite an einer Online-Quiz-App. Die Quizes sind in Kapitel unterteilt, so dass jedes Kapitel sein eigenes Quiz hat. Jedes Kapitel ist an ein Menü angehängt und auf ein Menü klicken, ein Kapitel wird mit Inhalt geladen und am Ende gibt es eine Schaltfläche, um ein Quiz zu starten.Jquery: Attributwert eines HTML-Elements erhalten

Während der Benutzer das Quiz nimmt, gibt es eine Schaltfläche, um zur nächsten Frage zu navigieren. Nach dem Abschluss der letzten Frage wird die Punktzahl für das Quiz neben einer Schaltfläche angezeigt, mit der Sie zum nächsten Kapitel navigieren können. all das soll dynamisch geschehen. Was ich will, ist, auf dieser Schaltfläche, die zum nächsten Kapitel navigieren wird, übergeben ich die ID des nächsten Kapitels in dieser Schaltfläche

Dies ist das jquery Bit, das den letzten Teil behandelt, die ich oben beschrieben habe (der Klick Ereignis behandelt Vorlage einer Frage):

$(document).ready(function(){ 
    $("#page-content-wrapper").on('click', '.questionform #submit', function(e) 
    { 
      //more code before this 
      var next_chapter = $("a[data-menu='" + next_menu +"']")[0]; 
      console.log(next_chapter); 
    }); 
}); 

die Variable next_chapter hält den gesamten hTML-Link für das nächste Menü. das heißt

console.log(next_chapter);

kehrt:

<a href="#signs-giving-orders" id="2" data-menu="2">Signs Giving Orders</a>

jetzt, was ich will, ist die id zu erfassen und auf die Schaltfläche Wert übergeben. Ich habe versucht, die ID immer der Verwendung der .find und .attr Methoden als solche:

var next_chapter = $("a[data-menu='" + next_menu +"']")[0].attr('id'); 
var next_chapter = $("a[data-menu='" + next_menu +"']")[0].find('a').attr('id'); 

aber sowohl die oben werfen einen Fehler: Uncaught TypeError: $(...)[0].attr is not a function und Uncaught TypeError: $(...)[0].find is not a function sind.

Also kurz gesagt, wie rufe ich die ID dieses dynamischen Ergebnis: <a href="#signs-giving-orders" id="2" data-menu="2">Signs Giving Orders</a>

Antwort

1

Sie brauchen nicht [0] zu verwenden überprüfen kann, gibt es den Verweis auf nativen DOM-Element so wurden Sie den Fehler.

Wie Sie den Attributwert erhalten möchten, direkt verwenden .attr() auf jQuery-Objekt

var next_chapter = $("a[data-menu='" + next_menu +"']").attr('id'); 
                 //Notice [0] is removed 
+0

du hast Recht. das funktioniert gut – suo

Verwandte Themen