如何连接一个string与variables?
所以我试图从一个string和一个传递的variables(这是一个数字)的string。 我怎么做?
我有这样的东西:
function AddBorder(id){ document.getElementById('horseThumb_'+id).className='hand positionLeft' }
那么我怎么把这个'horseThumb'和一个id变成一个string呢?
我尝试了所有的各种选项,我也google了,除了学习,我可以像这样插入一个stringvariablesgetElementById("horseThumb_{$id}")
< – (没有为我工作,我不知道为什么)我发现没有用处。 所以任何帮助将非常感激。
你的代码是正确的。 也许你的问题是你没有传递一个ID给AddBorder
函数,或者带有这个ID的元素不存在。 或者,您可能正在运行您的function之前,通过浏览器的DOM可访问的元素。
要确定第一种情况或确定第二种情况的原因,请将这些添加为函数内的第一行:
alert('ID number: ' + id); alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
每次调用函数时都会打开popup窗口,其值为id
, document.getElementById
的返回值。 如果popupID号undefined
,则不会将parameter passing给该函数。 如果该ID不存在,您将在第一个popup窗口中获得您的(不正确的?)ID号码,但是在第二个popup窗口中会得到null
。
第三种情况会发生,如果您的网页看起来像这样,试图运行AddBorder
而页面仍在加载:
<head> <title>My Web Page</title> <script> function AddBorder(id) { ... } AddBorder(42); // Won't work; the page hasn't completely loaded yet! </script> </head>
为了解决这个问题,将所有使用AddBorder的代码放在onload
事件处理程序中:
// Can only have one of these per page window.onload = function() { ... AddBorder(42); ... } // Or can have any number of these on a page function doWhatever() { ... AddBorder(42); ... } if(window.addEventListener) window.addEventListener('load', doWhatever, false); else window.attachEvent('onload', doWhatever);
在JavaScript中,“+”运算符用于添加数字或连接string。 如果其中一个操作数是string“+”连接,并且如果它只是数字,则将它们相加。
例:
1+2+3 == 6 "1"+2+3 == "123"
这可能发生,因为如果一个string与一个数字连接,java脚本有时会允许空格。 尝试删除空格并创build一个string,然后将其传递到getElementById。
例:
var str = 'horseThumb_'+id; str = str.replace(/^\s+|\s+$/g,""); function AddBorder(id){ document.getElementById(str).className='hand positionLeft' }
就像你一样。 我会给你一个小提示这些愚蠢的东西:只需使用浏览器的url框来尝试js语法。 例如,写这个: javascript:alert("test"+5)
,你有你的答案。 在你的代码中的问题可能是这个元素不存在于你的文档…也许它是在一个窗体或东西。 你也可以通过写入url: javascript:alert(document.horseThumb_5)
来检查你的错误。
另一种简单的方法来使用jQuery。
样品:
function add(product_id){ // the code to add the product //updating the div, here I just change the text inside the div. //You can do anything with jquery, like change style, border etc. $("#added_"+product_id).html('the product was added to list'); }
其中product_id是javascript var和$(“#added _”+ product_id)是一个与product_id连接的div id,来自函数add的var。
最好的祝福!