javascript - 如何在javascript中使用变量值
问题描述
当我点击按钮时,我想打印我的产品详细信息。
我有两个字典手表,这里的电视
是我的 javascript 代码,我使用show(btn)
函数打印字典的值并btn
保存字典的名称。但是当我写btn["name"]
输出是未定义的。
但是当我点击手表按钮时,alert(btn)
它会输出手表,或者我点击电视按钮,alert(btn)
它会输出电视。
那为什么btn["name"]
不工作。
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>
解决方案
您的 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);
});
}
推荐阅读
- r - 将扇区分配给R中的一个角度
- ios - Xcode 可以重新创建 UIViewController 吗?
- python - 使用来自 matplotlib 的 animation.FuncAnimation 的动画播放速度比预期慢
- sql - 使用 postgresql 的 WITH CTE 查询
- apache - AWS EKS - 无法访问 LoadBalancer 后面的 apache httpd
- python - 如何替换要使用python脚本解析的yaml文件中的环境变量值
- elasticsearch - Janusgraph 返回“未知的外部索引后端:搜索”在 Gremlin 中使用 elasticsearch 构建混合索引
- git - 修补第三方软件包同时还能够进一步合并更新的标准程序是什么?
- javascript - 将组件连接到 redux 全局状态与将 props 传递给 React-Native 中的子组件
- c# - 如何从布局c#访问会话数据