我尝试使用for循环生成一堆不同的网址,以便通过Javascript在我的表格中使用。
我想要的最终网址是:http://www.enviroptics.com/ecommerce/environmentally-sealed-thermocouple-nb4-caxl-14u-12-aag.html
网址基本上分为4个部分:
前缀和后缀不会改变。产品名称也将在javascript中保持不变,但我希望它作为一个单独的变量,因为我计划制作一堆javascripts,每个不同的产品名称1。产品编号将针对我表格中的每个不同行和链接进行更改。
这是我到目前为止所做的:
var eo_url_1 = 'http://www.enviroptics.com/ecommerce/';
var eo_url_ext = "environmentally-sealed-thermocouple-"
var eo_url_2 = '.html';
我还有一个生成我的部件号的for循环,当我使用控制台日志时,我得到了这个:
console.log(eopartnum[i]); //yields the following part number results
//NB4-CAXL-14U-12-AAG
//NB4-CAXL-14U-12-BAG
//NB4-CAXL-14U-12-CAG
//(24 more similar results)
因此例如eopartnum [0] = NB4-CAXL-14U-12-AAG。我试图用它来连接所有东西:
window.navtoprod = function() {
window.document.location = eo_url_1.concat(eo_url_ext,eopartnum[i],eo_url_2);
}
但似乎是通过试图引导我进入' http://www.enviroptics.com/ecommerce/environmentally-sealed-thermocouple-undefined'或' http://www.enviroptics.com/ecommerce/environmentally-sealed-thermocouple-[object%20text]'
以下是我一直在工作的w3:http://www.w3schools.com/code/tryit.asp?filename=F0VL5U0MKS2H
答案 0 :(得分:2)
如果您想要将变量值插入字符串,此处的所有其他答案都有效。看看你提供的w3示例,我认为你的问题更多地与变量范围有关,因为你有一个通用的方法并且你正在循环你的产品,你就失去了变量eopartnums
的概念。是
对于您的具体示例,最好直接从表格行中读取产品代码,请参阅下面更改的方法
window.navtoprod = function(evt) {
var eo_url_1 = 'http://www.enviroptics.com/ecommerce/';
var eo_url_2 = '.html';
var partNum = evt.target.parentNode.children[0].innerText;
window.document.location = eo_url_1.concat(eo_url_ext,partNum,eo_url_2);
}
答案 1 :(得分:1)
将window.navtoprod更改为如下
window.navtoprod = function() {
window.document.location = eo_url_1.concat(eo_url_ext,this.getElementsByTagName("a")[0].childNodes[0].nodeValue,eo_url_2);
}
答案 2 :(得分:0)
var eo_url_1 = 'http://www.enviroptics.com/ecommerce/';
var eo_url_ext = "environmentally-sealed-thermocouple-"
var eo_url_2 = '.html',
yourCode= 'aaaa-aaaa-aaaa',
resultUrl=eo_url_1+eo_url_ext+yourCode+eo_url_2;
console.log(resultUrl);
或
var eo_url_1 = 'http://www.enviroptics.com/ecommerce/';
var eo_url_ext = "environmentally-sealed-thermocouple-";
var eo_url_2 = '.html',
yourCode= 'aaaa-aaaa-aaaa',
resultUrl=''+eo_url_1.concat(eo_url_ext,yourCode,eo_url_2);
console.log(resultUrl);
答案 3 :(得分:0)
ES6为您提供了一种很好的方法,可以将变量值插入到字符串中。我使用您的方案here创建了一个带有示例的JSFiddle。
以下是使用该示例的代码段,该代码会将URL记录到控制台
Signature: doc.GetFrame(frame=<PyOleMissing object at 0x06F20BC8>, FrameVariant=<PyOleMissing object at 0x06F20BC8>)
Docstring: <no docstring>
File: c:\programming\python\src\<comobject winx32.docfile>
Type: method
这将导致以下日志记录到控制台
答案 4 :(得分:0)
如果我的代码概述正确,则i
将无法在window.navtoprod
函数中使用。我看到window.navtoprod
被注册为事件处理程序的地方,但我没有看到i
被声明为全局变量的地方。因此,该功能无法选择产品编号,因为它不知道哪一个。您可以更改window.navtoprod
,以便它自己找到i
。我想这取决于表格行。这可以通过使用event - 作为事件处理程序传递给函数的对象来找到。