javascript - 将 jQuery 元素附加到包含 html 的字符串

标签 javascript jquery

我有一个 jQuery 包装元素,我想将其附加到 html 行。我无法解决这个问题,因为 append() 似乎接受字符串但不接受现有的 jQuery 元素(我在这里可能弄错了)。 我有以下设置:

var row='<tr><td>data1</td><td>data2</td><td>';
var img=$('<img src="path/to/img.png"');
img.click(myClickHandler);

现在我要做的是将此 img 元素附加到我的行并使用结​​束标记“关闭”该行。 我正在这样做:

var jRow=$(row);
jRow.append(img);
jRow.append('</td></tr>');

在我的行准备好之后,我将它附加到我的表中:

$('#tableId').append(jRow);

好吧,以上都不起作用,因为我在添加的行中得到的是 [Object Object] 而不是图像标签。

我的目标是在最后一个单元格中有一个包含图像的行和一个有效的点击处理程序。

请帮忙。

最佳答案

当您将字符串传递给 append() 时,它首先会“转换”为 DOM 元素/集合。因此,您传递给 append() 的每个字符串都必须是有效的 HTML/XHTML;您以后不能添加一些字符串。即使您事先关闭标签,图像仍然可以附加到表格行。例如

var row='<tr><td>data1</td><td>data2</td><td></td></tr>';
var img=$('<img src="path/to/img.png"/>');
img.click(myClickHandler);

var jRow = $(row);
$('td:last', jRow).append(img);

当您将任何内容传递给 append()html() prepend()(或任何其他类似方法)尝试忘记字符串;您刚刚传递的不再是字符串;它已被解析为 HTML,并已作为 DOM 元素(或多个 DOM 元素)添加到文档中。

关于javascript - 将 jQuery 元素附加到包含 html 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/974304/

相关文章:

javascript - 在哪里放置 enableHighAccuracy 和其他地理定位设置

javascript - 使用 JQuery 按顺序启动 css

javascript - 通过更改时选择的值更改输入值

javascript - 单击时无法获取 child 的索引

javascript - 如何将分钟转换为时间(hh :mm:ss)?

jquery - 哪个 Node js 库最像 jQuery deferred?

javascript - 访问div隐藏参数

javascript - 如何在 jQuery DataTable 中绘制 Excel 样式的数据条?

javascript - 由于没有类提升,Babel 转译 ES2015 中的继承无法工作

javascript - JavaScript 中的 "Access is Denied"错误