对于字符串中的循环错误

时间:2014-02-03 19:48:27

标签: jquery for-loop

我正在尝试在字符串中执行for循环。这就是我所拥有的:

slideContainer.append('<div>' + for( i=0; i<=slideCount-1; i++ ){'<a>' + (i+1) + '</a>'} + '</div>');

我想要的是它最终会像这样:

<div>
  <a>1</a>
  <a>2</a>
  <a>3</a>
  <a>4</a>
  <a>5</a>
</div>

但是我收到了一个错误:

Uncaught SyntaxError: Unexpected token ( 

它指的是'for'旁边的那个。发生了什么事?

4 个答案:

答案 0 :(得分:3)

简而言之 - for是指令(语句),而不是返回值的表达式。

通常我们将指令写为for ()而表达式(如函数)写为fan() - (之前的空格表示这不是表达式。

答案 1 :(得分:2)

function returnSlideNum(slideCount)
{
var _ret = "";
for( i=0; i<=slideCount-1; i++ ){_ret+='<a>' + (i+1) + '</a>';}
return _ret;
}

slideContainer.append('<div>' + returnSlideNum(slideCount) + '</div>');

答案 2 :(得分:2)

您的代码是非法的。而是使用for循环来连接字符串并将其添加到div

var str = "";
for (i = 0; i <= slideCount - 1; i++) {
    str += '<a>' + (i + 1) + '</a>';
}
slideContainer.append('<div>' + str + '</div>');

答案 3 :(得分:0)

你不能这样做。你可以尝试这样的事情:

slideContainer.append('<div>' + 
(function() { 
    var str = "";
    for(var i=0; i<=slideCount-1; i++ ){ 
        str += '<a>' + (i+1) + '</a>'
    } 
    return str;
})()
+ '</div>');

fiddle

这将你的for循环包装在一个立即调用的函数表达式(IIFE)中,顾名思义,它是一个表达式,因此是有效的。但那很难看。更好的方法是在循环中使用append

var aDiv = $("div");
for (var i=0; i < slideCount; i++) {
    aDiv.append('<a>' + (i+1) + '</a>');
}
slideCountainer.append(aDiv);

fiddle