我有一个包含4个数字的列表。如果我用列表的长度除以100,我得到25.我想将四个元素的宽度设置为这个数的倍数,例如。对于第一个,它将是25px,对于第二个50px,依此类推。
这是我到目前为止编写的(伪)代码:
list{1,2,3,4}
var array = list.split(',');
var width = 100 / array.length;
for (var n = 0; n < array.length; n++) {
if(array[n]==1) {
width = width; //here I want width as 25;
<div style="width:"+Width +"></div>
}
if(array[n]==2){
width = width+width;//here I want width as 50
<div style="width:"+Width +"></div>
}
if(array[n]==3) ){
width = width+width;//here I want width as 75
<div style="width:"+Width +"></div>
}
if(array[n]==4 ){
width = width+width;//here I want width as 100
<div style="width:"+Width +"></div>
}
}
答案 0 :(得分:1)
好像你混淆了html和javascript语法。 Html是<tag>
件事。
首先,我建议你this course或其他一些,只是为了开始使用JavaScript。
要在JS中创建元素,您可以使用document.write
,这可能要容易得多,但在文档加载之前只能使用。您可以像这样使用它:
width = 42; //or whatever
document.write('<div style="width: '+width+'px">adsf</div>');
或者更难,但也更灵活的方式 - 使用DOM。你会这样做的:
var div = document.createElement('div'); //create new element
div.style.width = 42; //set its width to whatever you want
div.textContent = "some text"; //add some text into the div
someElement.appendChild(div); //insert the element into another one
这里的someElement
要么是通过调用document.getElementById
(或类似函数)得到的元素,要么直接在体内,只需要写document.body
。
关于@Marc_B's answer,最终代码看起来像这样:
var list = [1,2,3,4];
var div;
for (var n = 0; n < array.length; n++) {
div = document.createElement('div');
div.style.width = 25*n;
document.body.appendChild(div);
}
答案 1 :(得分:0)
你不需要所有if()测试:
for (var n = 0; n < array.length; n++) {
width = 25 * (n + 1);
...
}
S0
n = 0 -> width = 25 * (0 + 1) -> 25 * 1 -> 25
n = 1 -> width = 25 * (1 + 1) -> 25 * 2 -> 50
n = 2 -> width = 25 * (2 + 1) -> 25 * 3 -> 75
etc...
答案 2 :(得分:0)
不是100%肯定你的要求,但我认为你只想要宽2,3,4,这取决于n是什么。 (转到Marc B的回答)
编辑:顺便说一句你错误地声明宽度(我认为)使用大写字母W.
var Width
应该:
var width