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]