首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用json脚本显示国家/地区标志?

如何使用json脚本显示国家/地区标志?
EN

Stack Overflow用户
提问于 2020-04-26 22:14:22
回答 3查看 285关注 0票数 1

我有一个包含标志的文件夹(例如):

gb.png

us.png

我有一个JSON文件(countries.json):

代码语言:javascript
复制
{
  "GB": "United Kingdom",
  "US": "United States"
}

我有一张桌子

代码语言:javascript
复制
<table>
           <tr>
              <td style="font-family: robotobold; color: white"><b>United Kingdom</b></td>
              <td style="font-family: robotoblack;text-align:right; font-size:10px; color: #aeafaf;">{data1}</td>
              <td  style="font-family: robotoregular;text-align:left; color: #46e08b;"><b>{data2}</b></td>
              <td style="font-family: robotoblack;text-align:right; font-size:10px; color: #aeafaf;">{data3}</td>
              <td style="font-family: robotoregular;text-align:left; color: #F65164"><b>{data4}</b></td>
            </tr>

我想在第一栏中的单词之前添加任何国家的图标。

我不知道该从哪里开始,也不知道该怎么做--有人有什么想法吗?

编辑:我试过这样做:

代码语言:javascript
复制
window.onload = function(){
    var table = document.getElementById("datatable");
    for (var i = 0, row; row = table.rows[i]; i++) {
        for (var j = 0, col; col = row.cells[j]; j += 4) {
            document.getElementsByTagName("img").src = "us.png"
        }  
    }
}

这是一种将所有元素设置为具有美国标志的尝试。

我还在每个<td>的第一个<tr>上添加了<img src="">

但是,什么也不会发生--不会出现美国标志。

EN

回答 3

Stack Overflow用户

发布于 2020-04-26 23:11:16

下面是您可以尝试的内容:在文件夹中创建一个包含标志但不包括扩展名.png的文件数组,例如:

代码语言:javascript
复制
var files = ["GB", "US"];

请注意,它们是大写的,因此您应该将文件名更改为大写。然后你的对象:

代码语言:javascript
复制
var obj = {
GB: "United Kingdom",
US: "United States"
}

不管有没有引号,它的工作方式都是一样的。循环遍历Javascript对象的最佳方法是首先将它们转换为数组,方法是使用:

代码语言:javascript
复制
var obj_assoc = Object.entries(obj);

这将创建一个包含键和值的数组,现在可以创建一个函数将数据追加到表中:假设所有文件都是大写的,并且扩展名为.png。注意:我使用的是jquery

代码语言:javascript
复制
$(document).ready(function(){
for(const [key, value] of obj_assoc){
$('#mytable tbody').append('<tr><td><img src="path/to/folder/' + key + '.png"/></td><td>' + value + '</td></tr>');
}
}
票数 0
EN

Stack Overflow用户

发布于 2020-04-27 01:01:02

可以,您可以使用Javascript来获取html元素的文本内容:例如,使用jQuery

代码语言:javascript
复制
var content = $('.myvalue').text();

或者,如果您正在使用循环,则对于多个值:

代码语言:javascript
复制
var i = 0;
while(i < $('.myvalues').length){
    var current_val = $('.myvalues').eq(i);
    //Do something with current_val
    i++;
}

然后,与Json文件相比,最好再次转换为数组,这样更容易循环。因此,如果您使用与我在上一个答案中所述相同的obj_assoc,则可以进行比较,因为它是一个值数组

票数 0
EN

Stack Overflow用户

发布于 2020-04-27 01:37:59

您可以直接使用while循环中的文本项,也可以将它们与其他外部数组进行比较

代码语言:javascript
复制
var i = 0;
while(i < $('.myvalues').length){
    var current_val = $('.myvalues').eq(i).text();
   //Use current_val here
    i++;
}

方法1:

代码语言:javascript
复制
var my_array = [];
var i = 0;
while(i < $('.myvalues').length){
    var current_val = $('.myvalues').eq(i).text();
    my_array.push(current_val);
    i++;
}

现在,my_array将包含来自<td>元素的值

方法二:

代码语言:javascript
复制
var my_other_array = ["val1", "val2", "val3", "val4", "val5"];
var i = 0;
while(i < $('.myvalues').length){
    var current_val = $('.myvalues').eq(i).text();
    for(var j = 0; j < my_other_array.length; j++){
        if(current_val == my_other_array[j]){
            console.log("Match found");
        }
        else {
            console.log("Match not found");
        }
    }
    i++;
}

感谢您的更正,应该是这样的:

代码语言:javascript
复制
var current_val = $('.myvalues').eq(i).text();

我忘记了检索文本内容的text()函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61442241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档