2017-07-11 3 views
0

Ich nehme einen Kurs, der erfordert, dass ich einen "Random Quote Generator" mache.Hinzufügen einer Klasse zu meiner Funktion

Ich versuche, diese Klasse hinzuzufügen:

div.info p { 
    color: #fff; 
    font-size: 1em; 
} 

meiner Arrays ich in meinem jQuery erstellt haben. Ich bin völlig verloren. Ich habe versucht,

.addClass(div.info p) 

zu meinem Code hinzuzufügen, und ich denke, das ist, wie ich es tun soll, aber nicht sicher, wie.

Hier ist meine JS so weit:

$(document).ready(function() { 
    function getQuote() { 
    var quotes = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p" ]; 
    var author = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p" ]; 

    $.each($('.info'), function(i, element) { 
     $(element).html(quotes[randomNum]); 
    }); 

    var randomNum = Math.floor((Math.random() * quotes.length)); 
    var randomQuote = quotes[randomNum]; 
    var randomAuthor = author[randomNum]; 

    $(".quote").text(randomQuote); 
    $(".author").text(randomAuthor); 
    } 

    $(".btn").on("click", getQuote); 
}); 

Antwort

0

Statt ein Element der Auswahl, CSS-Klassenauswahl hinzufügen, zum Beispiel .my-Absatz und fügen Sie den gewünschten Stil, dann mit jQuery diese Klasse hinzufügen Ihren Absätze .addClass("my-paragraph"). Angenommen, Sie möchten diesen Stil zu Ihren Zitaten hinzufügen: $(".quote").text(randomQuote).addClass("my-paragraph");.

$("p").addClass("my-paragraph");
.my-paragraph { 
 
    color: blue; 
 
    font-size: 1em; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>My paragraph</p> 
 
<p>My other paragraph</p>

+0

Also, wenn ich dich richtig verstehe, habe ich den Ajax zu meinem externen in Codepen importiert. Wenn ich mein Array als Anführungszeichen und randomQuotes definiert haben. Wäre es nicht sinnvoll, $ ("randomQuote"). AddClass ("div.info p") zu tun? Edit: Vielen Dank für die schnelle Antwort! –

+0

Wenn Sie die Methode [.addClass] (https://api.jquery.com/addclass/) verwenden, müssen Sie den CSS-Klassenselektor verwenden (hier ist ein Beispiel). Wenn Ihre Funktion durch Arrays iteriert, fügt sie diesen Stil automatisch mit der Methode _.addClass_ hinzu. –

+0

Das sieht so aus, als würden Sie den HTML-Code mit jQuery bearbeiten. Hab ich recht? –

0

Ihr Problem ist, weil Sie eine neue Zufallszahl jedes Mal zu erzeugen, müssen Sie versuchen, die Arrays zuzugreifen - vorausgesetzt, Sie zu einem anderen Ergebnis jedes Mal mögen. Versuchen Sie folgendes:

function getQuote() { 
 
    var quotes = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]; 
 
    var author = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]; 
 

 
    var random = function(max) { 
 
    return Math.floor((Math.random() * max)); 
 
    } 
 
    
 
    $.each($('.info'), function(i, element) { 
 
    $(element).html(quotes[random(quotes.length)]); 
 
    }); 
 

 
    var randomQuote = quotes[random(quotes.length)]; 
 
    var randomAuthor = author[random(author.length)]; 
 

 
    $(".quote").text(randomQuote); 
 
    $(".author").text(randomAuthor); 
 
    
 
} 
 

 
$(".btn").on("click", getQuote);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 
<div class="info"></div> 
 

 
Quote: 
 
<div class="quote"></div> 
 

 
Author: 
 
<div class="author"></div> 
 

 
<button class="btn">Click me</button>

+0

Rory vielen Dank! Das ist sehr geschätzt, aber hier ist der Link zum Projekt. https://codepen.io/jsf2008/pen/vZQxPe Ich habe 12 verschiedene Objekte, die ich jedes Mal zu 12 verschiedenen neuen Anführungszeichen erzeugen werde. Der nächste Schritt ist, das in jQuery zu tun. Es wird nur das Ersatz-Array angezeigt, das mit derselben Klasse angezeigt wird, mit der ich ein Problem habe. –

Verwandte Themen