如何使用 JQuery 创建一个新的 img 标签,其中包含来自 JavaScript 对象的 src 和 id?

Posted

技术标签:

【中文标题】如何使用 JQuery 创建一个新的 img 标签,其中包含来自 JavaScript 对象的 src 和 id?【英文标题】:How to create a new img tag with JQuery, with the src and id from a JavaScript object? 【发布时间】:2011-12-22 06:19:07 【问题描述】:

我对 JQuery 有基本的了解,但绝对是新手,我怀疑这很容易。

我的图像 src 和 id 在 JSON 响应中(转换为对象),因此 responseObject.imgurl 和 responseObject.imgid 中有正确的值,现在我想用它创建一个图像将它附加到一个 div (让我们称之为<div id="imagediv">。我有点坚持动态构建<img src="dynamic" id="dynamic"> - 我见过的大多数示例都涉及替换现有图像上的 src,但我没有现有图像。

【问题讨论】:

【参考方案1】:

您可以通过将属性传递给jQuery constructor 来完全避免.attr 来节省一些字节:

var img = $('<img />',
              id: 'Myid',
               src: 'MySrc.gif', 
               width: 300
             )
              .appendTo($('#YourDiv'));

【讨论】:

【参考方案2】:
var img = $('<img />',  
  id: 'Myid',
  src: 'MySrc.gif',
  alt: 'MyAlt'
);
img.appendTo($('#YourDiv'));

【讨论】:

【参考方案3】:

对于那些在 IE 8 中需要相同功能的人,这是我解决问题的方法:

  var myImage = $('<img/>');

               myImage.attr('width', 300);
               myImage.attr('height', 300);
               myImage.attr('class', "groupMediaPhoto");
               myImage.attr('src', photoUrl);

我无法强制 IE8 在构造函数中使用对象。

【讨论】:

【参考方案4】:

在 jQuery 中,可以通过将 html 字符串传递给构造函数来创建新元素,如下所示:

var img = $('<img id="dynamic">'); //Equivalent: $(document.createElement('img'))
img.attr('src', responseObject.imgurl);
img.appendTo('#imagediv');

【讨论】:

@a7omiton 通过上下文菜单或检查器查看源代码?上下文菜单(或 Ctrl + U)显示从服务器接收到的数据,没有 javascript 所做的更改。使用 DOM 检查器查看文档的活动 HTML 以及实时更改。 抱歉,我删除了评论:/,它现在确实显示在开发工具中,由于 jquery map 404 问题,页面被挂起 你是对的,但是图片没有显示在源页面上(ctrl + u) @a7omiton 您可以通过单击右下角的齿轮图标并禁用“启用源映射”选项来禁用有关 jquery.min.map 的 404 警告。 是的,我只是在看 paul_irish (***.com/questions/18365315/…) 的解决方案。谢谢你:)

以上是关于如何使用 JQuery 创建一个新的 img 标签,其中包含来自 JavaScript 对象的 src 和 id?的主要内容,如果未能解决你的问题,请参考以下文章

如何把jquery的值放入img标签的src里面

使用 JQuery 查找和复制图像

js如何将绝对url传入到img标签的src中

用jquery 怎么给div里所有的img标签添加一个a标签

Jquery - 在新 div 中包装多个标签子类

jquery怎么获取img的src?