如何将onClick事件的值传递给第二个函数?

时间:2019-03-07 22:07:02

标签: 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 个答案:

答案 0 :(得分:1)

html字符串格式错误。改变这个

output += '<button onClick="g('+ val.name +')" >Help Me Here</button>'; 

对此

output += '<button onclick="g(\''+ val.name +'\')" >Help Me Here</button>';