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

nec*_*ker 65 javascript

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

我有这样的事情:

function AddBorder(id){
    document.getElementById('horseThumb_'+id).className='hand positionLeft'
}
Run Code Online (Sandbox Code Playgroud)

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

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

Ple*_*and 52

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

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

alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));
Run Code Online (Sandbox Code Playgroud)

这将在每次调用函数时打开弹出窗口,其值为id和返回值document.getElementById.如果您获得undefinedID号弹出,则不会将参数传递给该函数.如果该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>
Run Code Online (Sandbox Code Playgroud)

要解决此问题,请将使用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);
Run Code Online (Sandbox Code Playgroud)


ste*_*ewe 27

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

例:

1+2+3 == 6
"1"+2+3 == "123"
Run Code Online (Sandbox Code Playgroud)

  • 只是为了好玩,结果是什么:`2 +"3" - 5`?(别作弊) (8认同)
  • 回答太迟了但是... 2 +"3"会给出"23"(通过连接)和"23" - 5会给你18(减法对字符串进行解析)你可以在你的控制台中测试它... (6认同)
  • 永远不要忘记运算符是从左到右求值的,所以:`1 + 2 +'3'+ 4 + 5 // 3345` (2认同)