基本上,我有一个<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');
}
答案 0 :(得分:1)
html字符串格式错误。改变这个
output += '<button onClick="g('+ val.name +')" >Help Me Here</button>';
对此
output += '<button onclick="g(\''+ val.name +'\')" >Help Me Here</button>';