我有这段代码。
<script>
$(document).ready(function(){
$( window ).resize(function() {
if($(document).width() < 620){
$(".flexy-menu").flexymenu({
speed: 400,type: "vertical", indicator: false
});
}
});
});
</script>
我想要的while语句是为表创建行(&#34;&#34;东西)。
我的方法是否可行,还是应该尝试其他方式?
谢谢!
答案 0 :(得分:1)
while
语句不会解析为某个值,您不能将它们放在表达式的中间。
请考虑以下事项:
document.getElementById("stage").innerHTML = "<table>";
while (c<b) {
document.getElementById("stage").innerHTML += c++;
}
document.getElementById("stage").innerHTML += "</table>"
答案 1 :(得分:0)
while
循环是一个语句,而不是表达式。 您可以将表达式放在语句中,并且可以将表达式放在其他表达式中,但是您不能在表达式中放置语句。
然而,您可以使用数组来存储您在循环中所做的任何事情的结果,然后在最后将它们连接在一起,如下所示:
var result = [],
r;
while (c < b) {
r = /* do something */;
result.push(r);
c++;
}
document.getElementById("stage").innerHTML = "<table>" + result.join('') + "</table>";
result.join('')
是一个表达式,因此它适合您尝试编写的内容。
答案 2 :(得分:0)
我可能会这样做:
var html = '<table>';
// make sure b and c are initialized somehow
while(c < b)
{
// start new row
html+= '<tr>';
// add cells
html+= '<td>' + 'a cell' + '</td>';
html+= '<td>' + 'another cell' + '</td>';
// end row
html+= '</tr>';
// iterate your looping variable so you aren't infinite
c++;
}
// end table
html+= '</table>';
$('#stage').html(html);
每次通过while都会向表中添加一行新数据。
通常最好创建一个包含所有html的字符串变量,然后将其全部添加到DOM中。这要快得多,因为您只需操作DOM一次而不是多次操作。