Я пытаюсь создать переменную в своем Javascript, который использует значение, назначенное во время запуска данных.
Вот мой 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 и hardcode некоторое значение в моем js, плеер работает. Однако я могу понять, что не так с линией:
var startTime = videoId.getAttribute('data-start-time');
Все, что мне нужно сделать, это получить значение, назначенное в html внутри data-start-time = "..." для каждого "li", используя идентификаторы, которые различаются в зависимости от конкретного "li",
Попробуй это:
var startTime = $('#'+videoId).prop('data-start-time');
Предполагая, что функция при получении в videoId
является идентификатором элемента, вам необходимо получить этот элемент по идентификатору. Именовать идентификатор не будет. Вы также можете использовать простой javascript следующим образом:
document.getElementById(videoId).getAttribute('data-start-time');
videoId
аргументvideoId
? Если это строка, содержащая идентификатор элемента, тоvideoId.getAttribute()
является ошибкой. Попробуйте$("#"+videoId).attr('data-start-time')
.