我想查看 NewEgg 产品 ID 的格式,因此我尝试从他们的主页运行以下脚本,将所有链接产品的 ID 吐出到控制台:
for (var i=0;i<document.links.length;i++) {
if (document.links[i].href.indexOf("Product.aspx")!=-1) {
var itemNo=document.links[i].href.split("Item=")[1];
console.log(itemNo);
}
}
(如您所见,产品链接中包含“Product.aspx”,后跟?Item=[itemid]
.Simple split
to get the part after ?Item=
)。该脚本运行良好。但是,当我试图变得“更高级”时,我开始收到itemNo
未定义的错误消息。这是我尝试过的脚本:
for (var i=0;i<document.links.length;i++) {
if (document.links[i].href.indexOf("Product.aspx")!=-1) {
var itemNo=document.links[i].href.split("Item=")[1];'
if (itemNo.charAt(0)=="N") {//look at only IDs that start with 'N'
console.log(itemNo);
}
}
}
这报告了 itemNo 在第二个if
语句中未定义(if
上面第四行的内部)。注释掉该if
语句(第 4 行和第 6 行)使其再次正常工作。所以基本上,我可以记录它,但我不能if
。我还尝试了更多的字符串操作来代替if
之前的记录,但是在定义的行之后,itemNo
除了记录它之外我无能为力。我尝试更改变量名无济于事。
诚然,这是来自 Firebug 控制台(也尝试过 Firefox 的原生 Scratchpad),所以环境有点不同,但我看不出为什么有时应该定义变量,但有时却未定义。