Jquery 将JSON内部元素彼此分离
鉴于我无法更改输出此JSON的服务器端代码:Jquery 将JSON内部元素彼此分离,jquery,json,Jquery,Json,鉴于我无法更改输出此JSON的服务器端代码: [ { test_id: "1", test_name: "Diagnostic Test 1" }, { test_id: "2", test_name: "Test 1" }, { test_id: "3", test_name: "Test 2" } ] 创建按钮的最佳方法是什么?其中值是内部元素的第一部分,而按钮上显示的实际文本是内部元素的第二部分 <div id
[
{
test_id: "1",
test_name: "Diagnostic Test 1"
},
{
test_id: "2",
test_name: "Test 1"
},
{
test_id: "3",
test_name: "Test 2"
}
]
创建按钮的最佳方法是什么?其中值是内部元素的第一部分,而按钮上显示的实际文本是内部元素的第二部分
<div id="testList">
<button value="test_id">test_name</button>
<button value="test_id">test_name</button>
<button value="test_id">test_name</button>
</div>
测试名称
测试名称
测试名称
目前我正在这样做:
$.getJSON( "tests.json", "json" )
.done(function(data) {
$.each(data, function(){
$.each(this, function(name, value){
$("#testList").append('<button>'+ value +'</button>');
})
})
});
$.getJSON(“tests.json”,“json”)
.完成(功能(数据){
$.each(数据,函数(){
$.each(此,函数(名称,值){
$(“#测试列表”)。追加(“”+value+“”);
})
})
});
它分别输出按钮:
<div id="testList">
<button>1</button>
<button>Diagnostic Test 1</button>
<button>2</button>
<button>Test 1</button>
<button>3</button>
<button>Test 2</button>
</div>
1.
诊断测试1
2.
测试1
3.
测试2
记住:我无法更改JSON 删除内部
$。每个
-外部循环寻址数据
可以访问每个对象的两个属性:
$.getJSON( "tests.json", "json" )
.done(function(data) {
$.each(data, function(i, d){
$("#testList").append('<button value="' + d.test_id + '">'+ d.test_name+'</button>');
})
});
$.getJSON(“tests.json”,“json”)
.完成(功能(数据){
$。每个(数据、函数(i、d){
$(“#测试列表”).append(“”+d.test_name+“”);
})
});
请注意,这并不是一种生成元素的完全健壮的方法,这取决于您对数据源的信任程度以及它们是否应该只包含纯文本。类似于以下内容的内容会更好:
var b = $('<button>');
b.val(d.test_id);
b.text(d.test_name);
$("#testList").append(b);
var b=$('');
b、 val(d.测试id);
b、 文本(d.测试名称);
$(“#测试列表”)。附加(b);
$.getJSON(“tests.json”、“json”)
.完成(功能(数据){
$.each(此,函数(ind,元素){
$(“#testList”).append(element.test_id+''+element.test_name+'');
})
});
非常感谢-非常有效。将在超过时间限制时接受请注意,这并不完全可靠-理想情况下,您希望根据您对数据源的信任程度,退出test\u id
和test\u name
。我们进行了编辑以反映这一点。
$.getJSON( "tests.json", "json" )
.done(function(data) {
$.each(this, function(ind,element){
$("#testList").append(element.test_id + '<button>'+ element.test_name+'</button>');
})
});