2013-10-06 62 views
0

我想在我的Javascript中創建一個變量,使用在數據啓動時分配的值。JS變量等於html數據屬性

這裏是我的html:

 <li data-pile="1" id="kQKhpVWBjoQ" data-start-time="20" class="md-trigger md-setperspective"> 
     </li> 

這裏是我的JS:

function playVideo(videoId, cb) { 
    if(videoId) { 
     myModal.find('.md-video').append($videoDiv); 
     myModal.addClass('md-show'); 
     setTimeout(function() { 
      console.log('#### id', videoId); 
      var startTime = videoId.getAttribute('data-start-time'); 
      player.loadVideoById({'videoId': videoId, 'startSeconds': startTime}); 
      player.videoEnded = function() { 
       cb && cb(); 
      }; 

      player.waitForChanges(); 
     }, 1000); 
    } 
} 

如果我創建變量startTime和硬編碼在我的js播放器的工作原理一定的價值。不過,我 似乎可以弄清楚什麼是錯行:

var startTime = videoId.getAttribute('data-start-time'); 

所有我需要做的就是在數據開始時間裏面的html分配=「...」的價值爲每 「李「使用根據不同的特定的ID‘禮’

+1

什麼是'videoId'參數?如果它是一個包含元素id的字符串,則'videoId.getAttribute()'是一個錯誤。試試'$(「#」+ videoId).attr('data-start-time')'。 – nnnnnn

+0

現在工作,謝謝(: – irm

回答

3

試試這個:

var startTime = $('#'+videoId).prop('data-start-time'); 

假設什麼在videoId接收功能是元素ID,那麼你需要通過ID來獲得該元素。只是命名該ID不會這樣做。你也可以使用像這樣的普通javascript:

document.getElementById(videoId).getAttribute('data-start-time'); 
+1

真棒!(:你能解釋爲什麼我的代碼不起作用嗎? – irm

+0

@irm,很高興我能幫上忙。 – Sergio