使用javascript中的条件从JSON获取数据
我有一个JSON,我想使用javascript中的条件从JSON获取数据 加载页面时,产品HTML使用javascript中的条件从JSON获取数据,javascript,Javascript,我有一个JSON,我想使用javascript中的条件从JSON获取数据 加载页面时,产品HTML表正在加载。在该表tbody中,有一个td具有id 这里我想做的是,如果JSONproduct\u idvalue等于tdsidvalue打印currency\u symbol到td。我在下面提到了我的代码 产品HTML表格: <table id="table" class="table table-striped table-sm"> <thead> <
表
正在加载。在该表tbody
中,有一个td
具有id
这里我想做的是,如果JSONproduct\u id
value等于td
sid
value打印currency\u symbol
到td
。我在下面提到了我的代码
产品HTML表格:
<table id="table" class="table table-striped table-sm">
<thead>
<tr>
<th>ID</th>
<th>Currencies</th>
</tr>
</thead>
<tbody>
{{#each products}}
<script>
$(document).ready(function(){
insert_items_onload({{id}});
});
</script>
<tr>
<td>{{this.id}}</td>
<td>
<div>
<table class="cur_symbol">
<tbody>
</tbody>
</table>
</div>
</td>
</tr>
{{/each}}
</tbody>
</table>
身份证件
货币
{{#每个产品}
$(文档).ready(函数(){
插入\u项\u onload({{id}});
});
{{this.id}}
{{/每个}}
最终输出应为:
<table id="table">
<thead>
<tr>
<th>ID</th>
<th>Currencies</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td id='1'>
<div>
<table class="cur_symbol">
<tbody>
<tr><td>€</td></tr>
<tr><td>£</td></tr>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<td>2</td>
<td id='2'>
<div>
<table class="cur_symbol">
<tbody>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<td>3</td>
<td id='3'>
<div>
<table class="cur_symbol">
<tbody>
<tr><td>$</td></tr>
</tbody>
</table>
</div>
</td>
</tr>
<tr>
<td>4</td>
<td id='4'>
<div>
<table class="cur_symbol">
<tbody>
<tr><td>€</td></tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
身份证件
货币
1.
€
£
2.
3.
$
4.
€
请帮我解决这个问题。谢谢。将您的代码变成了一个工作示例 主要是跟随你的代码。我想知道你为什么不用把手来做这件事,因为你已经用过了。您的产品ID重叠,因此此逻辑似乎有缺陷。我只是添加了一些代码来搜索id,找到最接近的tr,并将HTML替换为那里的字符串
comname={};
comname.newCurrency=[{
“id”:1,
“产品标识”:1,
“货币id”:2,
“费率”:“1.01”,
“货币名称”:“欧元”,
“货币符号”:“€”
}, {
“id”:2,
“产品标识”:1,
“货币id”:3,
“费率”:“1.02”,
“货币名称”:“英镑”,
“货币符号”:“英镑”
}, {
“id”:3,
“产品标识”:3,
“货币id”:1,
“费率”:“1.03”,
“货币名称”:“澳元”,
“货币符号”:“$”
}, {
“id”:4,
“产品标识”:4,
“货币id”:2,
“费率”:“1.04”,
“货币名称”:“欧元”,
“货币符号”:“€”
}];
$(文档).ready(函数(){
插入_项_onload();
});
函数insert\u items\u onload(){
$('.cur_symbol tr').remove();
comname.newCurrency.forEach(
item=>insert_items_symbol(item.product_id,item.currency_symbol)
);
}
函数插入项目符号(id、货币符号){
/*变量符号\u表=`
${currency_symbol}
`;*/
$(`${id}`)。前缀(`${currency\u symbol}`);
}
身份证件
货币
//不要使用这一部分,只是一个懒散的黑客来生成虚拟测试html
[1,3,4,2,5].forEach(id=>document.write(`
${id}
克利尔梅
`));
您的脚本
标记未正确关闭,变量货币_名称
和汇率
未定义,。。。您可能希望将整个项
对象传递到插入项目符号
,并从中获取这些属性。与您试图完成的任务相比,这些似乎是相当基本的错误。你调试过吗?不要在你的问题中使用json
标记(和单词)。没有明确提到JSON,只有JavaScript对象文本。JSON应该为数据交换格式保留,而不是为JavaScript代码中的文字保留。阅读json
标记用法说明,尤其是大写部分。@trincot我对JS和编程完全陌生。所以我尝试了这个任务,搜索了2天。我不知道如何进一步实现这一点。这里我想做如果JSONproduct\u id
等于td
id
。该td
应在表格中显示currency\u symbol
。这就是我在那里试过的,看起来很普通。我所看到的大部分帖子都充斥着拼写错误和/或代码功能中不可或缺的缺失代码。你们可能认为他们在测试我们或其他什么。那个么你们在那个里使用什么模板语言呢?id属性必须是唯一的。这些值重叠。您要么需要使用不同的属性名称,要么重新考虑数据结构。另外,附加的表在结构上不同是有意的吗?我更正了它,更改了$(
#${id}).resest('tr').html(符号表)
到$(
{id}).closest('td').html(符号表)你想在货币符号下再加一个td吗?你想防止重复吗?目前的问题是它只显示一种货币。但有些应该显示几种货币。为什么?因为你正在覆盖它。