不能将图像对象与其他HTML元素放在一起
Can't place image object with other HTML elements
我不能将图像对象与其他HTML元素放在DOM上。例如:
$('#preview> tbody:last')[0].appendChild('<tr><td>' + image + '</td></tr>');
这行不通。什么都没有。但是,当我只使用图像时,它显示在屏幕上:
$('#preview> tbody:last')[0].appendChild(image);
为什么这个不行?在我看来,不管怎样都是可行的。我试着只使用append
,但没有任何工作-图像本身或与其他元素。
完整码位
var reader = new FileReader();
reader.onload = function (event) {
var image = new Image();
image.src = event.target.result;
image.width = 50;
$('#preview> tbody:last')[0].appendChild(image);
};
您面临的问题是appendChild()
需要一个节点(或节点引用),而不是一个HTML字符串。
要使用字符串,请使用innerHTML()
(但请记住,这会重写/覆盖相关元素中的任何现有HTML(因此会丢失绑定到现有HTML的任何事件)。
我没有测试过,但为什么不坚持使用jQuery(尽管有点冗长的方法),因为您无论如何都在使用它:
$('#preview> tbody:last').append('<tr><td></td></tr>').find('td').append(image);
JS Fiddle demo.
参考:-
appendChild()
.
在第一个示例中,您正在连接一个DOM对象和一个字符串。在第二个示例中,您只将DOM对象放入表中—它不应该工作,因为您丢失了行和列,但浏览器必须原谅。
我会说要么将图像构建为HTML字符串并将其原始附加,要么将行和列构建为DOM对象,但您必须保持一致。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素