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" ]