2013-10-06 45 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