Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有HTML标记的Javascript内部HTML_Javascript_Html - Fatal编程技术网

带有HTML标记的Javascript内部HTML

带有HTML标记的Javascript内部HTML,javascript,html,Javascript,Html,我正在为学校做一个项目,我想创建一个javscript函数,该函数使用onclick方法将文本添加到html元素中,该方法将运行一个函数 function a(func, words){ var initfunc = "<span class = 'link' onclick='" + String(func) +"();'>" + words + "</span>"; return t.innerHTML += initfunc

我正在为学校做一个项目,我想创建一个javscript函数,该函数使用onclick方法将文本添加到html元素中,该方法将运行一个函数

function a(func, words){
    var initfunc = "<span class = 'link' onclick='" + String(func) +"();'>" + 
            words + "</span>";
    return t.innerHTML += initfunc;
}
函数a(函数,单词){
var initfunc=”“+
字数+“”;
返回t.innerHTML+=initfunc;
}
问题是,当使用此函数运行页面时,显示的html具有作为字符串一部分的标记,而不是作为html标记。

string(func)
不会给出函数的名称

为此,您可以使用ES6草案中定义的,但只有当函数是全局函数时,它才会起作用

如果要添加事件侦听器,最好使用DOM方法:

function a(func, words){
    var span = document.createElement('span');
    span.className = 'link';
    span.onclick = func;
    span.appendChild(document.createTextNode(words));
    t.appendChild(span);
}