iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0
自我挑戰組

這些日子我學到的JavaScript 系列 第 21

這些日子我學到的JavaScript:Day20-應用 innerHTML 與 for 迴圈

  • 分享至 

  • xImage
  •  

假如我有一個 h1,h1 底下有一個空的 ul(.list),任務是帶出所有農夫的名字並插入 .list 中。

// HTML

// JS
// 建立陣列儲存資料
var farms = [
{
farmer: '卡斯伯',
dogs: ['張姆士', '龐的'],
},
{
farmer: '查理',
dogs: ['皮皮'],
}
];

// 選取要編輯的 DOM 元素
var el = document.querySelector('.list');
// 儲存陣列資料的總筆數
var farmLen = farms.length;
// 建立一個空字串
var str = '';
// 跑 for 迴圈
for(var i = 0 ; i < farmLen ; i++){
// 要插入的字串
var content = ''+ farms[i].farmer +'';
str += content;
}
el.innerHTML = str;
程式碼說明:

不能在迴圈中直接寫 el.innerHTML = content,因為 innerHTML 的特點是每次都會刪光原本的資料再覆蓋上去,以致於會把每次迴圈跑出來的結果給洗掉,只剩最後一個跑出來的結果。
+= 是累加的意思,代表每一次迴圈跑出來的結果都會被存入變數 str 中。
在迴圈跑完之後,才可以在迴圈外使用 innerHTML 把 str 的結果插入到 .list 中。
str += content 的意義
str += content 展開來就等於 str = str + content,整行程式碼用白話文來說就是「原變數 =(重新賦予值)原變數內容 + 新字串」。
舉例來說,當我們寫 var str= 'hello' 時,裡面就被賦予字串,而若我們有內容要加上去又不要影響原本的字串,那就可以派上用場。


上一篇
這些日子我學到的JavaScript:Day19-DOM - 用 JS 更改 HTML & CSS 屬性
下一篇
這些日子我學到的JavaScript:Day21-事件
系列文
這些日子我學到的JavaScript 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言