2017-02-24 65 views
-2

我在做一个练习,使我习惯了onchange事件处理程序和数组。我对要求我做的事情感到非常困扰。这里是我的代码:onchange事件处理程序练习

document.getElementById('productID').onchange = function() { 
    productID = this.value; 
    iName = imageName[productID]; 
    url = urlBase + iName; 
    iPrice = imageName[productID]; 
    document.getElementById('...').innerHTML = iPrice; 
}; 

这里有说明。

  1. 处理选择列表的onchange事件; ID“产品ID”

  2. 获取选中的水果产品ID是这样的:productID = this.value;

  3. 使用parseInt(),以确保产品ID值是一个数字。
  4. 使用到的productID引用数组imageName这种方式获取所选产品的形象的名字:iName = imageName[productID];

  5. 结合urlBase +图像的名字来获取完整URL的形象。这样做:url = urlBase + iName;

  6. 将url加载为id为'product image'的src。

  7. 通过使用productID和价格数组来获得产品的价格。把产品的价格放在变量iPrice中。请参阅#4关于如何做到这一点。

  8. 将范围“价格显示”的innerHTML设置为价格。这样来做:document.getElementById('...').innerHTML = iPrice;

+0

你需要更具体一点,并告诉我们你究竟遇到了什么问题。 – CBroe

+0

@CBroe我没有做过,指示要求我做什么?我真的不明白parseInt()是什么意思,并且“将url作为带有id'产品图像'的src加载”。 – Drstreaks

+1

_“我真的不明白parseInt()是什么意思”_ - 然后在google中输入'parseInt'。 _“,并将url加载为id为'product image”_的src,这意味着您应该创建您创建的URL并将其分配给具有该id的image元素的src属性。 (尽管'产品图像'在HTML中不是有效的ID。) – CBroe

回答

0
var imageName = { "1.jpg", "2.jpg", "3.jpg" }; 
var priceArray = { 200, 100, 489 }; 
var urlBase = "yourserver/path/where/product/images/are/stored"; 

document.getElementById('prodSelectTagid').onchange = function() { 
    productID = this.value; 
    if (isNaN(parseInt(productID))) { 
     alert("Not a valid product id"); 
    } else { 
     iName = imageName[productID]; 
     url = urlBase + iName; 
     document.getElementById("prodImg").src = url; //add <img id="prodImg" src="" /> in your html. 
     iPrice = priceArray[productID]; 
     document.getElementById('prodPriceDivTagId').innerHTML = iPrice; //<div id="prodPriceDivTagId" /> 
    } 
}; 

parseInt用于检查值是否为整数或没有。如果值不是整数,则返回NaN(非数字),如果它是整数,则返回值本身。 src用于在HTML中设置<img>标记的来源,如上面代码的注释区域中所指定的。

0
document.getElementById('productID').onchange = function() { 
    var productID = parseInt(this.value); 
    var iName = imageName[productID]; 
    var url = urlBase + iName; 
    document.getElementById('product image').src = url; 
    var iPrice = price[productID]; 
    document.getElementById('price display').innerHTML = iPrice; 
};