等于ID随变量传入的ID-Jquery

问题描述 投票:0回答:2

这是在成功返回一个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 ajax id
2个回答
0
投票

[您需要在使用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;
                                }
                            }
                        })
                    }

0
投票

您要添加#选择器并测试返回对象的长度

© www.soinside.com 2019 - 2024. All rights reserved.