javascript - 从数组分配属性

标签 javascript php jquery arrays

我正在尝试根据从 PHP 脚本通过 AJAX 获取的列名称以及预定义的列详细信息数组来构建一个表单。我希望将这些预定义的属性分配给传入的列并构建一个表单。例如,如果我得到“UserName”列,我希望始终成为 < input >

模板

var template = {
  UserName : {
                label: "User Name:",
                type: "input"
  }
  UserId : {
              label: "User Id:",
              type: "text"
  }
}

来自 AJAX 请求的传入 JSON 数组

{"UserName":"bob", "UserId":"1"}

现在我需要以某种方式“匹配”这些。我自己也不确定在这里要做什么。

$.each(data, function(i,e){
  // if index (such as UserName) is found in template array, maybe add the attributes to it?
});

最佳答案

对于您的情况,使用 obj.hasOwnProperty(key) 来测试它是否存在,连接字符串并使用三元赋值来构建输入元素。如果您愿意,还可以使用 if 语句。

var $html = '';
$.each(data, function(idx,v){
    $html += template.hasOwnProperty(idx)? '<input type="'+template[idx]['type']+'" name="'+idx+'"/>': '';
});
console.log($html);

Here's your jsFiddle

关于javascript - 从数组分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26704365/

相关文章:

javascript - Jquery Tab菜单滚动箭头

javascript - 当变量未定义或为 null 时,if 语句不起作用

javascript - XHR 和标准执行之间的身份验证区别

javascript - React - 由于某种原因,Babel Polyfill 不会阻止 Set 或 Weakmap 上的异常,但会填充 Promise

php - 从 Joomla 3.2+ 中的另一个数据库访问数据

JavaScript - 返回之前的值?

javascript - 如何在模态中将焦点设置为输入?

php - 如何在 mysql 中重新格式化日期时间?

javascript - 使用 jquery 强制下载所有 <a> 标签上的文件

jquery - 如何在 jquery 中单击链接时创建一个指向的 div