0

我有一个书签,它从用户当前所在的页面中获取一些信息,然后保存到那里的帐户。一种这样的信息和平是他们可能正在查看的物品的价格。要从页面中获取价格,我有以下 javascript:

input = this.createInput("price", "hidden");
var prices=new Array("price","kfs-price","pricesize","salesprice","money","ourPrice","product-price","memo_fp_prix_final"
              ,"atrPrice","product_price");
      var price = 0;
      for (var i = 0; i < prices.length; i++){
          var priceEls = document.getElementsByClassName(prices[i]);
          for (var a = 0; a < priceEls.length; a++) {
            price = priceEls[a].innerText;
            i = 1000;
          } 
      }
      input.setAttribute("value", price);
      this.form.appendChild(input);

价格数组基于查看一些常见的知名站点以及它们为价格所在区域提供的类名称。即使在具有价格类名称的页面上,添加到表单时变量“价格”仍然返回“未定义”。

我看不出代码有什么问题,所以希望有人能看到问题或知道更好的方法吗?

4

2 回答 2

0

我认为这条线

var priceEls = document.getElementsByClassName(prices[i]);
// taking an instance of this inside the loop 
var priceEls = document.getElementsByClassName('price');

现在我不明白你的内循环

for (var a = 0; a < priceEls.length; a++) {
        price = priceEls[a].innerText;
        i = 1000;
      }

priceEls is giving you an element only

这条线在做什么

//price = priceEls[a].innerText;
于 2013-09-27T07:39:44.930 回答
0

尝试使用 innerHTML:http: //jsfiddle.net/vDFpR/

for (var a = 0; a < priceEls.length; a++) {
    price = priceEls[a].innerHTML;
    i = 1000;
} 

它可能与此有关:'innerText' 在 IE 中有效,但在 Firefox 中无效

于 2013-09-27T07:58:53.267 回答