这是在成功返回一个JSON数据的ajax调用后执行的代码。我试图遍历数据并将值附加到变量。然后,将这些变量用于比较fieldType的switch语句中,该fieldType将为Input,Button或Select。如果匹配,则将添加fieldValue,或者如果存在按钮,则单击字段变量。
正在成功返回数据,看起来像这样:
{
"scenarioDataId": 1,
"scenarioId": 1,
"fieldType": "Input",
"fieldName": "HouseNumberOrName",
"fieldValue": "28"
},
在此示例中,fieldType等于Input,fieldName(它是字段的ID)等于HouseNumberOrName和fieldValue,它等于值28。我试图比较fieldType并根据该类型进行比较例如将一个值附加到具有匹配ID的UI输入字段中。
function scenarioData(response) {
$.each(response, function(key, val) {
var fieldType = val.fieldType;
var fieldName = val.fieldName;
var fieldValue = val.fieldValue;
var field = $(fieldName); //// Here is my issue
console.log(field);
if (field != undefined) {
switch (fieldType) {
case "Input":
$(field).val(fieldValue);
console.log(fieldValue);
break;
case "Button":
$(field).click();
break;
case "Select":
$(field).val(fieldValue);
break;
}
}
})
}
希望这很有道理,但我想使用变量字段(等于字段ID)在UI中查找特定字段。例如,在这种情况下,存在一个名为House Number的字段,其ID为HouseNumberOrName。我想将fieldName分配给field,然后使用field变量在我的UI的html中找到相应的ID,然后switch语句匹配类型,在这种情况下,将值附加到该字段。
我将如何设置字段变量以查找具有匹配字段名称的ID?
[您需要在使用jquery id选择器时使用#
,然后获取dom元素。另外,一旦获得了jquery对象,就无需再次将其包装在$()
中,就可以按原样使用它来执行jquery调用/方法。
注意:在为jquery对象声明变量时使用$
。这只是一种标准方式,但不是强制性的]]
请参见下面的代码
function scenarioData(response) {
$.each(response, function(key, val) {
var fieldType = val.fieldType;
var fieldName = val.fieldName;
var fieldValue = val.fieldValue;
var $field = $('#'+fieldName); //prepend # for id
console.log($field);
if(field != undefined) {
switch (fieldType) {
case "Input":
$field.val(fieldValue);
console.log(fieldValue);
break;
case "Button":
$field.click();
break;
case "Select":
$field.val(fieldValue);
break;
}
}
})
}
您要添加#选择器并测试返回对象的长度