2016-07-28 11 views
1

Ich versuche, eine Spanne mit einem Bootstrap Glyphicon an den Anfang eines DIV-Inhalt voranzustellen, aber das Symbol wird nicht angezeigt.jQuery - Prepend to div funktioniert nicht

Alles, was falsch mit diesem JS ?:

$(formMessages).prepend('<span class=\"glyphicon glyphicon-ok\"></span>'); 

EDIT: formMessages soll eine Variable, nicht eine Klasse oder ID sein. Die einzige Zeile der folgenden, die nicht funktioniert, ist die prepend:

.done(function(response) { 
     $(formMessages).css('display', 'block'); 
     $(formMessages).removeClass('alert-danger'); 
     $(formMessages).addClass('alert-success'); 
     $(formMessages).prepend('<span class="glyphicon glyphicon-ok"></span>'); 
     $(form).css('display', 'none'); 

     $(formMessages).text(response); 
+0

Ist 'formMessages' eine Variable oder ist es der Name eines Elements oder einer Klasse? –

+0

Keine Notwendigkeit, Ihre Zitate in Ihrem Beispiel zu entkommen – j08691

+0

ist die Spannweite da, wenn Sie es im Browser-Inspektor betrachten? – JamieD77

Antwort

0

Wenn formMessages eine Klasse ist, muss es wie folgt geschrieben werden:

$('.formMessages').prepend(... 
+0

Es soll eine Variable sein. Das Hinzufügen und Entfernen von Klassen funktioniert wie vorgesehen. Einzige Sache, die nicht funktioniert, ist die prepend – nickck15

0

Es gibt keine Notwendigkeit, die zu entkommen Anführungszeichen, wenn Sie Single außerhalb der gesamten Zeichenfolge haben und Double innerhalb. Dies ist eine ziemlich nützliche Funktion in Javascript und funktioniert in beide Richtungen - Sie können doppelte Anführungszeichen auf der Außenseite haben, einzelne innerhalb der Zeichenfolge. Habe einfach nicht beide Typen drin.

Wie dem auch sei, das Entfernen Schrägstriche, da es für die Flucht keine Notwendigkeit, sollte es funktioniert:

$(formMessages).prepend('<span class="glyphicon glyphicon-ok"></span>'); 

Und wie andere haben darauf hingewiesen, wird $(formMessage) nur funktionieren, wenn formMessage eine Variable ist. Verwenden Sie $(".formMessage"), wenn es eine Klasse ist oder $("#formMessage") wenn ID.

+0

Habe die umgekehrten Schrägstriche entfernt, aber immer noch nicht funktioniert. formMessage ist eine Variable, bestehend aus einem #formMessage div – nickck15

+1

Laden Sie definitiv die Ressourcen, die das Symbol enthalten? (Nur eine Überprüfung der Gesundheit) Überprüfen Sie auch @ Icemans Schnipsel :) – AgataB

+0

Ja. Ich habe Bootstrap in meiner gesamten Site verwendet. – nickck15

0
  • Nie entkommen, bis es notwendig ist. Hier haben Sie ein einfaches Zitat ' verwendet, um eine Zeichenfolge zu definieren. Sie müssen also nur flüchten, wenn Sie in der Zeichenfolge ein einfaches Anführungszeichen haben möchten. Für doppelte Anführungszeichen " ist es nicht erforderlich.
  • Sie haben nicht genügend Code zur Verfügung gestellt. Aber ich hoffe, formMessages ist ein JS-Objekt.

Arbeitsbeispiel:

var formMessages = document.getElementById("test_div"); 
 
$(formMessages).prepend('<span class=\"glyphicon glyphicon-ok\"></span>');
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<div id="test_div">Lorem ipsum</div>

+0

Ich habe nicht versucht, etwas hinzuzufügen, sondern nur das Glyphon hinzuzufügen. Ja, formMessages ist eine Variable – nickck15

+0

@ Nickck15, die nur für visuelle Zwecke da war, um das Ergebnis zu sehen. Fühlen Sie sich frei, mit dem zu ersetzen, was Sie haben. – Iceman

+0

Nein.Mein Punkt ist, dass das Glyphicon nicht einmal ohne die Backslashes erscheint – nickck15

0

In Ihrem Code, gibt es keinen Fehler.

Ich denke, dass das "Symbol wird nicht angezeigt", bedeutet nicht, dass "im DOM fehlt". Versuchen Sie, Ihre Stile zu überprüfen. glyphicons muss einfach haben: vor /: nach Element.