3

我正在努力提高我的 JavaScript 技能。使用 for 循环我想选择每隔一个元素(例如,我想让它们变为粗体或斜体)。我知道我可以使用 CSS3 和nth-child选择器来做到这一点,但正如我所说,我正在努力提高我的 JS 技能,我想使用for循环而不是foreach循环或其他 JS 循环类型来做到这一点。我是JS的新手。

编辑:我想添加所有元素,但我只想拿起第二个元素以使它们变为粗体或斜体

var myList = document.getElementById('myList');
var addList = ["Python", "C", "C++", "Ruby", "PHP", "Javascript", "Go", "ASP", "R"];

for (var i = 0; i < addList.length; i++) {
  var newLi = document.createElement("li");

  newLi.innerHTML = addList[i];
  myList.appendChild(newLi);
}
<ul id="myList"></ul>

4

6 回答 6

5

在你的 for 循环中,每次迭代都i增加 2,而不是增加 1 。ii+=2

更新代码:

var myList = document.getElementById('myList');
var addList = ["Python", "C", "C++", "Ruby", "PHP", "Javascript", "Go", "ASP", "R"];

for (var i = 0; i < addList.length; i+=2) {
  var newLi = document.createElement("li");

  newLi.innerHTML = addList[i];
  myList.appendChild(newLi);
}
<ul id="myList"></ul>

于 2018-08-13T10:35:02.017 回答
5

使用modulus(%)运算符获取每个2nd element循环并添加fontStyle它:

var myList = document.getElementById('myList');
var addList = ["Python", "C", "C++", "Ruby", "PHP", "Javascript", "Go", "ASP", "R"];

for (var i = 0; i < addList.length; i++) {
  var newLi = document.createElement("li");
  newLi.innerHTML = addList[i];
  if(i%2==0){
  newLi.style.fontStyle = "italic"
  newLi.innerHTML = "<strong>"+addList[i]+"</strong>";
  }


  
  myList.appendChild(newLi);
}
<ul id="myList"></ul>

于 2018-08-13T10:50:46.383 回答
2

在您的for循环中i++,使用. 而不是i += 2.

于 2018-08-13T10:34:41.550 回答
2

%要添加所有元素并选取每个第二个元素,请在if语句中使用模运算符:i % 2 == 0并更改fontStyle.

更新代码:

var myList = document.getElementById('myList');
var addList = ["Python", "C", "C++", "Ruby", "PHP", "Javascript", "Go", "ASP", "R"];

for (var i = 0; i < addList.length; i+=2) {
  var newLi = document.createElement("li");
  
  if (i % 2 == 0) {
    // make bold
    newLi.style.fontStyle = "bold"
    // make italic
    newLi.style.fontStyle = "italic"
  }

  newLi.innerHTML = addList[i];
  myList.appendChild(newLi);
}
<ul id="myList"></ul>

于 2018-08-13T10:39:35.593 回答
2

您可以在循环体中添加类似这样的内容:

if (i % 2 == 1) {
    // whatever you need to do to make it bold or italic
}

这将为 的每个奇数值调用i

于 2018-08-13T10:51:54.643 回答
1

只需在循环中使用 i+=2 代替 i++

于 2018-08-13T10:37:30.903 回答