2013-04-16 2 views
3

Я хочу напечатать dict a в предупреждении (возможно?) Или напечатать в текстовом поле третьего (3) с id=p. я прочитал на this question и я использовалСоздайте/создайте динамическую переменную переменной и напечатайте

document.getElementById("p").value=JSON.stringify(a);; 
    alert("myObject is " + a.toSource()); 
    console.log(a); 

Они не функционируют. Примером является:

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Example - print the dict</title> 
</head> 
<body> 

<input id = 'button1' type = 'button' value = 'print the dict' onclick="updateHistory()"/> 

<script type = 'text/javascript'> 

var count ="?foo=1&oo=298529982"; 

function updateHistory() 
{ 

var a = new Array(); 

for (var i = 0; i < document.formparam.elements.length; i++) 
{ 

    var field = document.formparam.elements[i]; 
    a[field.name] = field.value; 
} 

document.getElementById("p").value=JSON.stringify(a);; 
alert("myObject is " + a.toSource()); 
console.log(a); 
} 


</script> 
<form method="GET" name="formparam" id="formparam" ><table><tr><td><textarea name="name" >john</textarea></td><td><textarea name="surname">jackold</textarea></td></tr></table></form> 
<textarea id="p"></textarea> 
</body> 
</html> 
+0

Вы означаете, что вы хотите изменить 'console.log (a)' to 'alert (a)'? Если это так, вы должны просто начать использовать консоль. – Paulpro

+0

нет Я хочу напечатать dict в одном сигнале или в текстовом поле, Я использовал Firebug, и я вижу этот dict, но я не уверен –

+0

Dict? Разве вы не имеете в виду объект javascript? – Daedalus

ответ

3

Использование JSON.stringify() на массив будет перебирать массив следующим образом:

for (var i = 0; i < a.length; ++i) { 
    // process value of a[i] 
} 

Но поскольку вы добавляете свойства объекта с помощью a[field.name], те не будут добавлены в список элементов массива, в отличие от a.push(value) , Таким образом, JSON.stringify() напечатает [].

Вы должны либо:

  1. Определение a как объект, т.е. var a = {};

  2. перебирать ключи самостоятельно:

    for (var k in a) { 
        if (a.hasOwnProperty(k)) { 
         // process value of a[k] 
        } 
    } 
    
2

var a = new Array();

должен быть

var a = {}; или var a = new Object();

Там нет dictonnaries в JavaScript, однако, вы можете использовать объект в качестве ключа/магазина значение , Чтобы предупредить object как JSON, вы можете просто сделать alert(JSON.stringify(a));.

+0

Теперь все функции ... –

Смежные вопросы