计算元素列表

时间:2015-08-20 19:20:52

标签: javascript jquery

我有一个包含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>
  }
}

3 个答案:

答案 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