我正在尝试在字符串中执行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'旁边的那个。发生了什么事?
答案 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>');
这将你的for
循环包装在一个立即调用的函数表达式(IIFE)中,顾名思义,它是一个表达式,因此是有效的。但那很难看。更好的方法是在循环中使用append
:
var aDiv = $("div");
for (var i=0; i < slideCount; i++) {
aDiv.append('<a>' + (i+1) + '</a>');
}
slideCountainer.append(aDiv);