2017-03-14 38 views
-1
var createSongRow = function(songNumber, songName, songLength) { 
var template = 
    '<tr class="album-view-song-item">' 
+ ' <td class="song-item-number" data-song-number="' + songNumber + '">' + songNumber + '</td>' 
+ ' <td class="song-item-title">' + songName + '</td>' 
+ ' <td class="song-item-duration">' + songLength + '</td>' 
+ '</tr>' 
; 
return template; 
}; 

在行<td class="song-item-number" data-song-number="' + songNumber + '">' + songNumber + '</td>'是數據 - 歌曲號另一個類ID?這行有兩個類名嗎?

回答

0

data-song-number不是一個類。

data是一個允許存儲額外信息的屬性>它基本上形成了一種與元素相關的信息。

任何文本都可以附加到data-,它給出了與該元素相關的信息類型的有意義的名稱。

對於這個例子

<div data-name = 'John' id = "someDiv></div> 
var _name= document.getElementById("someDiv"); 
_name.getAttribute("data-name"); // will get the current value of data-name 
_name.setAttribute("data-name",'Player'); // will set he new value 
1

號在

<td class="song-item-number" data-song-number="' + songNumber + '">' + songNumber + '</td>'` 

我們說

  • td是元素
  • td元件具有兩個屬性
    • 屬性class具有值"song-item-number"
    • 屬性data-song-number具有值無論songNumber變量的值是
  • td元素的含量也是songNumber變量的值。

您詢問的術語「className」有時會出現在客戶端JavaScript編程中。它指的是class屬性,並且僅被稱爲className,因爲調用它class可能會與主機編程語言中的保留字發生衝突。如果你曾說過

<td class="a b">...</td> 

,那麼你可以在td元素的講話爲具有兩個類(CSS也許瞄準),但我們不會說這有兩個「類的名字。」無論如何,這當然不是你的例子中發生的事情;您的td元素只有一個類。