带有大量数据的嵌套jquery
Nested jquery with lot of data
我想使用带有json数据的jquery生成我的html,但它是嵌套的。
所以我有json数据:
{
"A" : ['a1','b1','c1'],
"B" : ['a2','b2','c2'],
"C" : ['a3','b3','c3']
}
我想在我的html上附加如下:
<select option="A">
<optgroup label ="A">
<option>a1</option>
<option>b1</option>
<option>c1</option>
</optgroup>
<optgroup label ="B">
<option>a2</option>
<option>b2</option>
<option>c2</option>
</optgroup>
</select>
我能用jquery.each吗?这对我的网络性能有好处吗?或者有什么更好的方法我可以用吗?
额外的问题是,数据溢出,但我可以过滤它,因为我只需要数组的一部分,而不是全部。
var shownData = ['A', 'C']
:这意味着我只想显示2个optgroup,A和C
我尝试过使用嵌套的jquery,但它是未定义的,可能是因为它是字符串(?),如下所示:
var arr = ['A'];
$.JSON("JSON.json", function(data){
$.each(arr, function(index, value){
$.each(data.value,function(i,val){
console.log(val);
});
});
})
哦。。将其用作数组。。解决它:D
var arr = ['A'];
$.JSON("JSON.json", function(data){
$.each(arr, function(index, value){
$.each(data[value],function(i,val){
console.log(val);
});
});
})
那么有什么更好的方法吗?。。
$.each()
基本上是一个带回调的for (name in object)
,但据我所知,forEach
通常比for循环快。以下可能是第二快的方法:
var optGroup,
option,
select = document.getElementById('select');
for (og in obj) {
optGroup = document.createElement('optgroup');
optGroup.setAttribute('label', og);
select.appendChild(optGroup);
obj[og].forEach(function(opt) {
option = document.createElement('option');
option.textContent = opt;
optGroup.appendChild(option);
})
}
演示->http://jsfiddle.net/d7zys0z1/
最快的方法是在documentFragment中构建它,然后注入DOM。
您应该使用data[value]
而不是data.value
:http://jsfiddle.net/u4sd5h1y/3/
可以使用myObject.myProperty
或myObject["myProperty"]
访问对象的属性。当代码中已知属性的名称时,请使用"."。当属性的名称存储在变量中时,请使用"[]"方法。
相关文章:
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- jQuery通过嵌套的ajax调用延迟对象
- 获取不带Jquery的嵌套父HREF节点
- 多个嵌套元素上的jQuery.text('')
- 如何在嵌套函数jquery上保持变量的值不变
- Jquery从嵌套函数返回
- jQuery对嵌套在<李>并且<a>元素,同时离开父<ul>打开
- javascript和jQuery的嵌套对象函数中的变量范围
- AngularJS:在使用嵌套的JQuery Sortables时保持Dom和Model同步
- 使用 jQuery 传递的 Rails 嵌套属性
- 嵌套在 .get 请求中的 jQuery 不会执行
- 具有完整时间设置的嵌套 JQuery 动画
- 使用滚动和屏幕大小的嵌套 JQuery if 语句
- 嵌套JQuery循环中的基本操作
- 嵌套JQuery.click()事件
- 带有大量数据的嵌套jquery
- 为什么在函数中嵌套jQuery调用
- Javascript函数工厂嵌套在一个即时函数内嵌套jQuery准备好了
- 嵌套Jquery选择器当前元素在一个循环
- 引用嵌套JQuery中的原始html元素