如何将字符串与变量连接?

时间:2010-11-20 19:26:51

标签: javascript

所以我试图用字符串和传递的变量(这是一个数字)来创建一个字符串。 我该怎么做?

我有这样的事情:

function AddBorder(id){
    document.getElementById('horseThumb_'+id).className='hand positionLeft'
}

那么如何将'horseThumb'和一个id变成一个字符串?

我尝试了各种各样的选项,我也用谷歌搜索,除了学习我可以在字符串中插入一个变量,如getElementById("horseThumb_{$id}")< - (对我不起作用,我不知道为什么)我发现没什么用处。所以任何帮助都会非常感激。

5 个答案:

答案 0 :(得分:48)

您的代码是正确的。也许您的问题是您没有将ID传递给AddBorder函数,或者具有该ID的元素不存在。或者您可能在通过浏览器的DOM访问相关元素之前运行您的函数。

要识别第一种情况或确定第二种情况的原因,请将这些作为函数内的第一行添加:

alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));

每次调用函数时都会打开弹出窗口,其值为id,返回值为document.getElementById。如果弹出ID号为undefined,则表示您没有将参数传递给该函数。如果该ID不存在,您将在第一个弹出窗口中获得(错误的?)ID号,但在第二个弹出窗口中获取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);

答案 1 :(得分:24)

在javascript中,“+”运算符用于添加数字或连接字符串。 如果其中一个操作数是字符串“+”连接,如果它只是数字,则添加它们。

示例:

1+2+3 == 6
"1"+2+3 == "123"

答案 2 :(得分:4)

这可能发生,因为如果字符串与数字连接,java脚本有时会允许空格。尝试删除空格并创建一个字符串,然后将其传递给getElementById。

示例:

var str = 'horseThumb_'+id;

str = str.replace(/^\s+|\s+$/g,"");

function AddBorder(id){

    document.getElementById(str).className='hand positionLeft'

}

答案 3 :(得分:1)

就像你一样。我会给你一些关于这些愚蠢事情的小提示:只需使用浏览器URL框来尝试js语法。例如,写下这个:javascript:alert("test"+5),你有答案。 您的代码中的问题可能是您的文档中不存在此元素...可能是在表单或其他内容中。您也可以通过在网址中填写javascript:alert(document.horseThumb_5)来检查错误的位置。

答案 4 :(得分:1)

使用jquery更简单的另一种方法。

示例:

{{1}}

其中product_id是javascript var而$(&#34; #added _&#34; + product_id)是与product_id连接的div id,来自函数add的var。

最诚挚的问候!