2010-12-31 6 views
0
<script> 
function makeid() 
{ 
var text = "var text = document.write(lastNumber);"; 
var possible = "*+-/"; 
for(var i=0; i < 1; i++) 
document.write(lastNumber + possible.charAt(Math.floor(Math.random() * possible.length)); 
return text; 
} 
document.write(makeid(1))</script> 

Wie mache ich dies für ex eingeben: 23 * 45- 13/und so weiter. Was ist los? Es zeigt mir nur 2 Nummern und keinen Char nach.Text + randomchar funktioniert nicht [JavaScript]

+1

Warum in aller Welt machst du das? 'document.write' ist generell eine schlechte Idee. –

+0

Ihr Code macht keinen Sinn. – SLaks

Antwort

1

Es gibt einige Probleme mit dem Code:

  • Sie haben die lastNumber Parameter in der Funktion angegeben.
  • Sie geben Code zurück, der den Parameter verwendet, aber von dem der Code ausgeführt wird, ist er nicht erreichbar.
  • Der zurückgegebene Code verwendet den Rückgabewert document.write, obwohl es nichts zurückgibt.
  • Der zurückgegebene Code hat kein Skript-Tag, daher wird er nur auf der Seite angezeigt und nicht ausgeführt.
  • Sie schreiben beide die Nummer in die Funktion und geben den Code zum Schreiben zurück.

auch:

  • Sie sind mit einer Schleife, die nur einmal Schleifen, die sinnlos ist.

So stellen die Funktion die Zeichenfolge anstelle der Rückkehr Code zurück:

<script type="text/javascript"> 
function makeid(lastNumber) { 
    var possible = "*+-/"; 
    return lastNumber + possible.charAt(Math.floor(Math.random() * possible.length)); 
} 
document.write(makeid(1)); 
</script> 
0
<script> 
function makeid() 
{ 
var text = document.write(lastNumber); 
var possible = "*-+/"; 
for(var i=0; i < 1; i++) 
text += possible.charAt(Math.floor(Math.random() * possible.length)); 
return text; 
} 
document.write(makeid(1))</script> 

, die gearbeitet, aber ich bekommen „88undefined +“, was undefinierten ist und wie ich es lösche?

+0

Es ist der Rückgabewert von 'document.write', der nicht definiert ist. Sie ordnen das der Variablen 'text' zu und verketten die Zeichenfolge damit. – Guffa

+0

OMG! Danke, Mann.. – user558773