`
Cwind
  • 浏览: 265776 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
793bb7df-a2a9-312d-8cb8-b66c3af482d1
LeetCode题解
浏览量:53672
社区版块
存档分类
最新评论

JavaScript利用JSON填充下拉框

阅读更多
一个简单的js小轮子。先说应用场景:
  • 以json字符串的形式拿到map,如'{"key1":"value1","key2":"value2","key3":"value3"}'
  • 需要遍历该map的键,并利用键的集合生成下拉框的option
  • 选择该下拉框中的某一项时,需要得到该键对应的值



 

首先将利用JSON.parse()方法解析传入的jsonStr,得到对应的Object。

var jsonStr = '{"key1":"value1","key2":"value2","key3":"value3"}';
var obj = JSON.parse(jsonStr);

 

在onload方法中初始化下拉框(select)的值。其中selector2设置为不可编辑,用于显示选择的值。

<body onload=init()>

<h2>Parsing JSON Map</h2>
<select id="selector" onchange=selectorChange(this.value)></select>
<select id="selector2" disabled=true></select>

</body>

 

遍历json obj中的键,创建option,设置option的值和显示文本,并将其追加到selector。更多Js操作select的方法可参见 Js操作select相关方法

 

function init(){  
  var selector = document.getElementById("selector");
  var selector2 = document.getElementById("selector2");
  for(var key in obj){
   var opt = document.createElement("option");
   opt.value = key;
   opt.innerText = key;
   selector.appendChild(opt);
   
   var opt2 = document.createElement("option");
   opt2.value = obj[key];
   opt2.innerText = obj[key];
   selector2.appendChild(opt2);
  }
}  

 

selector的onChange方法,将key(selector当前被选择的值)对应的value(从obj中找到)赋给selector2

 function selectorChange(value) {
  var selector2 = document.getElementById("selector2");
  selector2.value=obj[value];
 }

 完整示例

  • 大小: 23.1 KB
3
4
分享到:
评论
4 楼 Cwind 2015-04-15  
Vity 写道
jquery-tmpl 谁用谁知道

是的,它是个成型的大轮子,我这是个小螺钉
3 楼 Cwind 2015-04-15  
thc1987 写道
支持下,或许使用selector.options.add(new Option(text,value));代码更简洁点
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <script type="text/javascript">
  var obj = {"key1":"value1","key2":"value2","key3":"value3"};  
function init(){  
  var selector = document.getElementById("selector");
  var selector2 = document.getElementById("selector2");
  var selectorOpts = selector.options;
  var selector2Opts = selector2.options;

  for(var key in obj){
   selectorOpts.add(new Option(key,key));
   
   selector2Opts.add(new Option(obj[key],obj[key]));
  }
}  
 function selectorChange(value) {
  var selector2 = document.getElementById("selector2");
  selector2.value=obj[value];
 }
  </script>
 </head>
<body onload=init()>
	<h2>Parsing JSON Map</h2>
	<select id="selector" onchange=selectorChange(this.value)></select>
	<select id="selector2" disabled=true></select>
</body>
</html>

的确如此,非常感谢!
2 楼 Vity 2015-04-15  
jquery-tmpl 谁用谁知道
1 楼 thc1987 2015-04-15  
支持下,或许使用selector.options.add(new Option(text,value));代码更简洁点
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <script type="text/javascript">
  var obj = {"key1":"value1","key2":"value2","key3":"value3"};  
function init(){  
  var selector = document.getElementById("selector");
  var selector2 = document.getElementById("selector2");
  var selectorOpts = selector.options;
  var selector2Opts = selector2.options;

  for(var key in obj){
   selectorOpts.add(new Option(key,key));
   
   selector2Opts.add(new Option(obj[key],obj[key]));
  }
}  
 function selectorChange(value) {
  var selector2 = document.getElementById("selector2");
  selector2.value=obj[value];
 }
  </script>
 </head>
<body onload=init()>
	<h2>Parsing JSON Map</h2>
	<select id="selector" onchange=selectorChange(this.value)></select>
	<select id="selector2" disabled=true></select>
</body>
</html>

相关推荐

    JQuery + Servlet +Json实现下拉框级联

    本教程将详细讲解如何利用JQuery、Servlet和JSON技术来实现这一功能。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在本示例中,JSON被...

    json+select 下拉框级联菜鸟

    JSON(JavaScript Object Notation)和Select元素在网页开发中经常被用来构建动态的、交互式的用户界面,特别是在处理级联下拉框时。级联下拉框是指一个下拉框的选择会影响另一个下拉框的选项,这样的设计可以提高...

    jQGrid动态填充select下拉框的选项值(动态填充)

    6. **事件处理**:在某些情况下,你可能需要在表格加载后或单元格编辑时动态填充下拉框。可以监听`loadComplete`或`beforeEditCell`事件,根据需要进行填充。 通过以上步骤,我们就能够实现jQGrid中select下拉框的...

    DWR addOptions()填充下拉框,addRows()填充表格

    在上述示例中,`"selectElementId"` 是需要填充的下拉框的ID,`[ ["optionValue1", "Option Text 1"], ["optionValue2", "Option Text 2"] ]` 是一对对的值和文本,DWR会自动创建`&lt;option&gt;`元素并插入到指定的下拉框...

    二级关联下拉框jquery+ json java jsp

    4. 在jQuery的Ajax回调函数中,解析接收到的JSON数据,动态创建并填充二级下拉框的选项。 5. 更新二级下拉框,显示对应的一级类别下的子类别。 这个项目涉及到前端与后端的交互,需要熟练掌握jQuery的DOM操作和Ajax...

    JavaScript Ajax Json实现上下级下拉框联动效果实例代码

    在上述实例中,服务器端将查询到的人员数据以JSON格式返回给客户端,客户端的JavaScript能够解析这些JSON数据,并将其填充到人员下拉框中。JSON对象通常包含一个数组(`list`),数组里的每个元素代表一个人员对象,...

    jsp从数据库获取数据填充下拉框实现二级联动菜单的方法.docx

    ### JSP从数据库获取数据填充下拉框实现二级联动菜单的方法 #### 一、引言 在Web开发中,为了提高用户体验和数据处理效率,经常需要实现动态数据填充功能,尤其是对于多级联动的选择菜单。本文将详细介绍如何利用...

    AutoComplete aspx 实现下拉框自动填充

    本篇文章将深入探讨如何使用ASP.NET的Ajax技术实现下拉框的自动填充功能。 首先,让我们了解什么是AutoComplete。AutoComplete是一种常见的人机交互特性,它允许用户在输入文本时接收系统的实时建议。在Web应用中,...

    HTML5/CSS3/JavaScript实现搜索下拉框和圆角矩形

    根据给定的信息,本文将详细解析如何利用HTML5、CSS3和JavaScript来实现一个具有搜索功能的下拉框以及带有圆角效果的矩形。这一技术实现不仅在现代Web开发中非常常见,而且也是前端开发者必备的一项技能。 ### HTML...

    jsp从数据库获取数据填充下拉框实现二级联动菜单的方法

    这种功能在JSP(Java Server Pages)中可以通过与数据库交互来动态填充下拉框,并结合JavaScript和Ajax技术实现。本文将详细讲解如何使用JSP从数据库获取数据来填充下拉框,进而实现二级联动菜单。 首先,我们需要...

    bootstrap树形下拉框 下拉框树形菜单

    然后,利用JavaScript和jQuery初始化树形结构,并将其内容填充到下拉框中。代码可能如下: ```javascript $(document).ready(function() { // 初始化树形结构 var treeData = [/* 树形数据结构 */]; $('#...

    ajax实现动态下拉框示例

    总结来说,通过Ajax实现动态下拉框的关键在于使用Ajax发送请求到服务器获取数据,然后在客户端使用JavaScript将返回的数据动态添加到下拉框中。服务器端则负责处理请求,从数据库获取数据,并将其转换为JSON格式返回...

    javascript下拉框联动

    此外,还可以利用现代JavaScript的特性,如Promise和async/await,使得异步操作更加直观: ```javascript async function fetchCities(province) { try { const response = await fetch('get_cities_by_province'...

    (java版本)自己做了一个jquery ajax异步请求,获得一个list对象的下拉框例子

    在前端,我们需要一个函数`populateDropdown()`来处理返回的JSON数据并填充下拉框: ```javascript function populateDropdown(data) { var dropdown = $('#dropdownId'); // 假设下拉框的ID是'dropdownId' ...

    动态级联下拉框构件

    后台返回的数据通常以JSON格式传输,前端JavaScript可以方便地解析这些数据并填充到下拉框中。 4. **HTML与CSS**:HTML用于构建下拉框的结构,CSS则负责样式设置,确保界面美观且易用。例如,使用CSS可以设定下拉框...

    jQuery全国高校三级联动下拉框.zip

    4. **动态填充下拉框**:使用jQuery的`empty()`方法清空目标下拉框,然后遍历获取到的城市数据,用`append()`方法添加新的`&lt;option&gt;`元素。 5. **继续联动**:同样的,对二级下拉框设置`change`事件监听器,根据...

    jquery动态创建联动下拉框

    在上述代码中,`category`是主下拉框,`subcategory`是子下拉框,初始状态为禁用,等待被动态填充。 接下来,我们将使用jQuery来实现联动效果。主要步骤如下: 1. **监听主下拉框的`change`事件**:当用户在主...

    layui-省市县三级联动下拉框-HTML源码

    - 错误处理:在填充下拉框时,应处理可能出现的空值或无效ID情况,避免程序出错。 - 兼容性测试:确保在主流浏览器中都能正常工作。 - 可访问性:对于残障用户,确保下拉框的可访问性,例如使用ARIA属性。 总结,...

Global site tag (gtag.js) - Google Analytics