Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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
Javascript 如何使用jquery将html对象转换为html字符串?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何使用jquery将html对象转换为html字符串?

Javascript 如何使用jquery将html对象转换为html字符串?,javascript,jquery,html,Javascript,Jquery,Html,我已经创建了一个循环,下面是该循环之间的代码部分 --- Loop Starts --- var aElement = $('<a>'); aElement.attr('href', '#'); aElement.text(title); aElement.click(function() { alert("Hello World); }); video_list_html += '<tr>' + '<t

我已经创建了一个循环,下面是该循环之间的代码部分

--- Loop Starts ---

var aElement = $('<a>');
aElement.attr('href', '#');
aElement.text(title);

aElement.click(function() {
    alert("Hello World);
});

video_list_html += '<tr>' +
                        '<th scope="row">' + count + '</th>' +
                        '<td>' + aElement + '</td>' +
                    '</tr>';
--- Loop Starts ---

如何修复此问题,使其连接到视频列表\u html中,并且.click()事件保持工作状态。

尝试使用AEElement[0].outerHTML而不是AEElement。保持单击处理程序不变。

问题在于无法将对象附加到字符串。对象被强制,结果是,正如您所看到的,
[object object]

更好的解决方案是将新的HTML作为一个完整的字符串附加,然后使用委派的事件处理程序从那些动态添加的元素捕获事件。试试这个:

var数据=[{
videoId:'abc123',
标题:“视频#1”
}, {
videoId:'xyz987',
标题:“视频#2”
}]
var video_list_html=data.map(函数(o,i){
返回“+i+”;
}).加入(“”);
$('yourTable')。追加(视频列表\uHTML)。在('click','a',函数(e){
e、 预防默认值();
console.log($(this.data('videoid'));
});


如果不释放事件监听器,则无法将
aeelement
作为字符串连接。如果不想使用事件侦听器,则必须使用
appendChild
附加
aeelement
,这应该由谁来保留事件侦听器
AEElement.outerHTML
将生成一个字符串,其中不包含已附加的事件侦听器的任何信息。如果为True,则会附加html标记,但click事件不起作用。只是尝试确认新元素将需要另一个处理程序,如果这是他想要的,当然,原始元素的第一个处理程序保持不变。我明白了这是一个想法。使用HTML字符串创建的旧元素和新元素是两个不同的元素,当然,另一个元素需要另一个处理程序,我的意思是第一个处理程序仍然适用于第一个元素。问题是我做了alert(),实际上,我已经调用了自己的函数,使用和ID作为我在循环中得到的参数。像这样显示视频分析(videoId);坦率地说,我正在开发youtube analytics api,这是其中的一段代码,我根据自己的需要对其进行了修改,但我不能这样做。将
videoId
放在元素的
data-*
属性中,您可以在单次委托单击事件处理程序中检索该元素。我更新了问题,向您展示了如何做到这一点。
[object Object]