#javascript #json
#javascript #json
Вопрос:
В принципе, у меня есть <input>
поле, в котором я начинаю вводить имя. При вводе появляется html-файл с неупорядоченным списком <ul>
, содержащим названия моих видео из моего файла JSON. Что я пытаюсь сделать, так это иметь возможность нажать на кнопку и воспроизвести видео в <video>
проигрывателе. Однако, «val.name » не передается функции g(); когда я нажимаю на нее.
$('#search').keyup(function() {
var searchField = $('#search').val();
var myExp = new RegExp(searchField, "i");
$.getJSON('data.json', function(data) {
var output = '<ul class="searchresults">';
$.each(data, function(key, val) {
if (val.name.search(myExp) != -1) {
output = '<li>';
output = '<div>' val.name '</div>';
output = '<img src="images/' val.name '.jpg" alt="' val.name '" />';
output = '<button onClick="g(' val.name ')" >Help Me Here</button>';
output = '</li>';
}
});
output = '</ul>';
$('#update').html(output);
});
});
function g(e){
$('#videoObj').remove();
$('<video controls preload="metadata" id="videoObj" width="100%" height="720" src="videos/' e '.mp4" type="video/mp4" frameborder="0" allowfullscreen><track label="English" kind="subtitles" srclang="en" src="subtitles/' e '.vtt" ></video>').prependTo('#vholder').attr('autoplay','autoplay');
}
Комментарии:
1. где находится HTML, на который вы ориентируетесь? какое значение передается функции?
2. Вам нужны кавычки вокруг строки val.name в строке, которая записывает обработчик onClick.
3. Пожалуйста, не создавайте HTML из строк JS, это вызовет проблемы, только если вы забудете закодировать значения, которые должны быть закодированы. Кроме того, его сложно читать и поддерживать.
4. @Marc — Если вы посмотрите в конец моего тега video, значение передается внутри него и добавляется к идентификатору. Не уверен, почему это не обернулось вокруг. !
5. @James — Спасибо! Я упустил это из виду!
Ответ №1:
html-строка имеет неправильную форму. измените это
output = '<button onClick="g(' val.name ')" >Help Me Here</button>';
для этого
output = '<button onclick="g('' val.name '')" >Help Me Here</button>';
Комментарии:
1. Ну, вы знаете, кто дядя обезьяны? LMBO … этот парень прямо здесь! Спасибо! Не знаю, как я продолжал игнорировать это в течение 3 дней!
2. Я рад, что это помогло. Пожалуйста, примите ответ, чтобы он мог помочь и другим.
3. Как мне это сделать? Я проголосовал за это, но как мне принять?
4. рядом с вопросом должна быть зеленая галочка.