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

如何在javascript中使用变量值

岳晟
2023-03-14

我想在单击按钮时打印我的产品详细信息。
我有两个字典WatchsTV
这里是我的javascript代码,在此我使用show(btn)函数打印字典的值,并使用btn保存字典的名称。但当我编写btn[“name”]时,输出是未定义的。
但当我单击“手表”按钮和警报(btn)时,它会将输出作为手表给我,或者单击“电视”按钮和警报(btn)时,它会将输出作为电视给我。
那么为什么btn[“name”]不起作用。

null

var watches = {
    name : "Titan",
    price: "8,999",
    country : "Indian"
}
var Tv = {
    name : "Mi Tv",
    price: "20,999",
    country : "China"
}

function show(btn){
        document.getElementById("name").innerHTML = btn["name"];
        document.getElementById("price").innerHTML = btn["price"];
        document.getElementById("country").innerHTML = btn["country"];
}
var j = document.querySelectorAll(".product").length;

for(var i=0; i<j; i++){
document.querySelectorAll("button")[i].addEventListener("click",function(){
    var btn = this.innerHTML;
    show(btn);
});
 
}
table,th,td{
    border:2px solid black;
    border-collapse:collapse;
    padding:10px;
    text-align:left;
}
<button class="product">watches</button>
<button class="product">Tv</button>

<table>
    <tr>
        <th>Name of the Product</th>
        <td id="name">--</td>
    </tr>
    <tr>
        <th>Price</th>
        <td id="price">--</td>
    </tr>
    <tr>
        <th>Country</th>
        <td id = "country">--</td>
    </tr>
</table>

null

共有1个答案

柳德义
2023-03-14

您的show函数没有正确引用数据对象。我更新了show函数并声明了一个变量data以引用数据对象。

var watches = {
    name : "Titan",
    price: "8,999",
    country : "Indian"
}
var Tv = {
    name : "Mi Tv",
    price: "20,999",
    country : "China"
}

function show(btn){
    var data = (btn ==="watches")? watches :Tv ;
    document.getElementById("name").innerHTML = data["name"];
    document.getElementById("price").innerHTML = data["price"];
    document.getElementById("country").innerHTML = data["country"];
}
var j = document.querySelectorAll(".product").length;

for(var i=0; i<j; i++){
  document.querySelectorAll("button")[i].addEventListener("click",function(){
    var btn = this.innerHTML;
    show(btn);
  });
 
}
 类似资料:
  • 我试图在javascript中使用Spring变量: 我在这里找到了一些信息 所以我试着: 在浏览器的“源”选项卡中,我有如下内容: 错误是:。 我还尝试了:如果我打印,我得到了。

  • 问题内容: 如何使用JavaScript变量作为jQuery选择器中的参数? 基本上,我想做的是能够隐藏一个元素,该元素等于被单击的元素的名称。 问题答案: 或者,您可以执行以下操作。 或者,您也可以发挥作用。 如果要永久删除整个元素,请从页面中删除。 您也可以在此使用它。

  • 问题内容: 因此,前几天我在玩,目的是确切了解批量分配在JavaScript中的工作方式。 首先,我在控制台中尝试了以下示例: 结果是“栏”显示在警报中。这很公平,并且实际上只是同一对象的别名。然后我想,如何使这个例子更简单。 那几乎是同一回事,不是吗?好吧,这次返回的结果与我从第一个示例的行为所期望的不一样。 为什么会这样? 注意: 可以使用以下代码进一步简化此示例: (我怀疑JavaScrip

  • 问题内容: 我听说我们可以在CSS中声明/定义变量,并将其像全局变量一样使用: 所以有人知道如何使用它们吗? 问题答案: 为此,您需要使用CSS动态语言的 Less 或 Sass。

  • 问题内容: Maven有一个功能,我在package.json中非常想念。在maven .pom文件中,您可以在父项目中定义变量,并在子项目的pom文件中使用它们。 npm中有类似的东西吗?我们正在构建模块化项目,我想集中定义依赖项版本,并在相应的package.json文件中使用它们。 谢谢 问题答案: 可以引用任何键,对于您所下的每个级别,都可以开头并添加下划线。 例: 名称可以像这样访问:或

  • 问题内容: 我想在JavaScript中创建一个方法,并且我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我能做到这一点已经将取代所有的实例有。 但是我想做这样的事情: 但是显然这只会替换文本…所以如何将这个变量传递给我的正则表达式字符串? 问题答案: 代替使用语法,可以构造一个新的RegExp对象: 您可以通过这种方式动态创建正则表达式对象。然后,您将执行以下操作: