当前位置: 首页 > 知识库问答 >
问题:

当键的名称等于变量字符串时,如何检查键的值,然后使用jQuery显示某些HTML?[副本]

慕阳平
2023-03-14

对于JavaScript和jQuery中的赋值,我有一个对象,其中键是州名称或州缩写(例如内华达州、华盛顿州、宾夕法尼亚州、纽约州等),值是true或false(布尔值而不是字符串)。

我使用API获取网页访问者所在的状态,并将该状态存储到localStorage以及名为state的JavaScript变量中:

$.get('https://api.geoapify.com/v1/ipinfo?&apiKey=de43045d1ab840e9b94f07dee35c6935', function(response){
    console.log('State received...');
    state = response.state.name;
    localStorage.setItem('state', state)
    console.log(state)
    });

我需要检查访问者的状态名称作为对象中的键的值是什么(truefalse)。如果值为真,我需要在赋值的超文本标记语言中显示一组字符串。这些字符串位于另一个名为产品的对象中,该对象有2个子对象。

我根本不允许编辑HTML。HTML由3列组成,每列包含名称、信息模糊和产品图像的div。这三个列的名称、信息模糊和产品图像div的命名类都相同,但我只需要更改该列的一个值。

这是我到目前为止写的,但它并没有改变CodePen中的任何内容。我在这里被难住了:

    state_keys = Object.keys(theObjectContainingStates);
  
    if (theObjectContainingStates.["state"] == true) {
      $('.med_card_info-name').html(products[1].name)
      $('.med_card_info-blurb').html(products[1].blurb)
      $('.med_card_info-image').html(products[1].imgSrc)
}

我认为我的第一个问题是,我检查States对象中与访问者的state同名的键是否正确?

if (theObjectContainingStates.["state"] == true) {
   }

共有2个答案

何海
2023-03-14

为了确保我理解这个问题,您有一个名为“theObjectContainingStates”的对象,您想查看该对象中是否存在某些属性,但为了检查属性键名称,您将使用一个名为“state”的字符串变量,对吗?

当使用变量作为对象中的键时,只需去掉点并将变量括在方括号中:

if (theObjectContainingStates[state] !== undefined) {
  ...insert code...
}
葛威
2023-03-14

如果这不是您需要的,请提供更多代码,同时撤销您在示例中添加的此API密钥,否则人们可以开始使用它。

<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<script type="text/javascript">
    let states = ['Nevada', 'Washington', 'PA', 'NY', 'Federal District'];

    $.get('https://api.geoapify.com/v1/ipinfo?&apiKey=de43045d1ab840e9b94f07dee35c6935', function (response) {
        console.log('State received...');
        state = response.state.name;
        localStorage.setItem('state', state);

        if (states.includes(state)) {
            console.log('The state of the user is in the list');
        } else {
            console.log('User state not found in the list');
        }

        console.log(state);
    });
</script>
 类似资料:
  • 我有10个数组列表和一个字符串变量。我有一个函数/方法,允许用户选择要添加到的数组列表之一。目前,该函数将字符串“selected”的值更改为正确的数组列表名称的值。 那么,如何使arrayList的名称等于String变量的值呢?

  • 问题内容: 我一直在尝试找出如何使用mgo(Go的MongoDB驱动程序),并且遇到了这个struct声明: 我不太了解第一个元素(Id)的语法。我知道它被声明为type ,但是字符串文字在那里做什么? 我的问题不是关于mgo驱动程序功能, 而是关于这个奇怪的语法。 我在Go规格中找不到任何东西,我也不知道该如何在Google上搜索。 问题答案: 语言规范的“ 结构类型”部分对此进行了解释: 字段

  • 问题内容: 计划使用字符串值来引用我要更新的变量。组合来自几个不同用户选择来源的字符串。有很多使用if / case语句的可能性。提前致谢 问题答案: 如何使用字典? 这将使您实现所需的功能-存储不同键的值。 例如,代替使用 你可以用 要将值存储在字典中,只需使用 并从字典中获取值,请使用 所以,你可以使用这样的东西 顺便提一句,您可以真正清理一些代码

  • 问题内容: 我有以下带有变量的类,和。是一个关键字。如果要在下面的init方法中使用它,编写它的正确方法是什么? 更多上下文:该类明确需要该变量,因为它是另一个开发人员用另一种语言编写的POST端点所需的json的一部分。因此,更改变量名称是不可能的。 JsonAware代码: GenericEncoder代码: 问题答案: 如注释中所述,它是一个Python关键字,因此您不能将其用作变量名或属性

  • 以下是相关的更新代码位。正如用户carmickr所建议的,我使用DefaultListModel来处理地址簿HashMap中的数据。 然后在UserInterface构造函数内部:

  • 问题内容: 仅当我的字符串具有有意义的值时,我才想执行一些操作。所以,我尝试了这个。 还有这个 还有这个 还有这个 还有这个 而且在所有情况下,尽管我的字符串为EMPTY,但我的程序仍然有效。等于。那么,这有什么问题呢? 添加: 我找到了问题的原因。该变量被声明为字符串,结果,分配给该变量的结果变为!因此,作品。 问题答案: 如果myString实际上为null,则对引用的任何调用都将失败,并出现