2017-09-28 1 views
0

Hallo Leute, ich habe ein kleines Problem mit meinem Code. Exacly, ich schrieb Funktion um divHeight + margin zu zählen. Es ist wie dieserFunktion Argument ist nicht definiert

function mathMargin(divClass) { 
    divClass = "'."+divClass+"'"; 
    divHeight = $(divClass).outerHeight(true); 
    margin = divHeight * 0.3; 
    result = divHeight + margin; 
    return result; 
} 

sieht habe ich versucht, Anruffunktion wie diese

alert(mathMargin(flatbox-title)); 

Aber nicht funktioniert, Konsole returns „Flatbox“ ist nicht definiert. Was ist los mit dir?

+2

Sie brauchen keine inneren Anführungszeichen in '" '. "+ DivClass +"' "'. – Tushar

Antwort

3

Sie sollten den Parameter als string übergeben.

alert(mathMargin('flatbox-title')); 

Wie Sie die Interpreter schreiben sieht die Parameter als Ergebnis der Mathematik Subtraktion. (flatbox - Titel).

Sie benötigen auch nicht inner quotes aus der ersten Zeile der Funktion. Verwenden Sie stattdessen:

divClass = '.' + divClass; 
+0

Danke dude, du warst zuerst - es funktioniert ich akzeptiere deine Frage nach 10 Minuten – sauero

+0

@sauero, du bist willkommen. –

1

flatbox-title keine Variable ist, es ist ein String. Sie müssen es in Anführungszeichen setzen.

alert(mathMargin('flatbox-title')); 
0

Fehler

  • divClass = " '+ divClass + ""'"; Dadurch wird ein einzelner String erstellt. Überprüfe dich selbst in der Konsole.
  • beim Aufruf Funktion doppelte Anführungszeichen für den Parameter setzen Sie senden

function mathMargin(divClass) { 
 
    divClass = "."+divClass; 
 
    divHeight = $(divClass).outerHeight(true); 
 
    margin = divHeight * 0.3; 
 
    result = divHeight + margin; 
 
    return result; 
 
} 
 
alert(mathMargin('flatbox-title'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div class="flatbox-title">fa 
 
faww 
 
fwafaw 
 
fawfa 
 
w</div>

+0

@sauero .. Check-Snippet – krishnar

1

Als Alternative zu Alexandru-lonut Mihai und Manav Antworten, können Sie auch das Element passieren:

function mathMargin(div) { 
    divHeight = div.outerHeight(true); 
    margin = divHeight * 0.3; 
    result = divHeight + margin; 
    return result; 
} 

alert(mathMargin($('.flatbox-title))); 
0

Dolmetscher behandelt flatbox-title als Variable, nicht als String() und da Sie keine solche Variable deklariert haben, wird eine Ausnahme ausgelöst.

Auf der anderen Seite, warum einfachen Code zu komplizieren? Betrachten wir Umschreiben es als:

function mathMargin(divClass) { 
    var divHeight = $("."+divClass).outerHeight(true); 
    return divHeight * 1.3; 
} 

Bitte beachten Sie, dass Sie var Schlüsselwort vor Ihrer Variablen vergessen. Nicht sicher, ob es absichtlich war oder nicht, aber im Allgemeinen sollten Sie dies vermeiden, da ohne sie globale Variablen erstellt werden. Dies kann später einige böse Fehler verursachen ...

Verwandte Themen