JQuery Каждый вопрос о значениях JSON

<html>
<head>
    <title>testjson</title>
    <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript">

var incidentReport1 = {
    "text1": "n/a",
    "text2": "n/a",
    "text3": "n/a",
    }

function readHtmlForInputs() {
    var count = 0; //Setting count to 0
    $('input').each(function(){
        var input = $(this);
        var temp = (input.attr('id'));

    if(input.attr('type') == 'button'){alert('button');}
    else{
            incidentReport1.temp = input.val();
            count++; //Incrementing counter     
        }
    });



    console.log("Input Types Found:" + count);

}

function saveChanges()
{
readHtmlForInputs();
console.dir(incidentReport1);
}
    </script>


</head>
<body>
<input type="button" value="save" onclick="saveChanges();"/>
<input type="text" name="Surname" id="text1" class="InputText" /><br>
<input type="text" name="Surname" id="text2" class="InputText"/><br>
<input type="text" name="Surname" id="text3" class="InputText"/><br>

</body>
</html>

Получил вышеуказанный блок кода, я хочу иметь возможность динамически принимать идентификатор входных данных и использовать этот идентификатор для присвоения значения в incdientReport1 json. Когда я делаю эту проблему, кажется, эта строка...

var temp = (input.attr('id')); 

При назначении идентификатора и отображении его в консоли он работает нормально

Но когда эта строка кода

 incidentReport1.temp = input.val();

Запускает его, сохраняет его в новом поле с именем temp, а не в строковом значении temp..

Так смущенные парни, где я иду не так?

1 ответ

Решение

Ты хочешь:

incidentReport1[temp] = input.val();

Когда вам нужно использовать вычисленное имя свойства, вы используете [ ] оператор. То есть,

object.propertyName

такой же как

object[ "propertyName" ]
Другие вопросы по тегам