在不编辑html的情况下更改img标签图像的有效方法?
我有一个页面显示可下载文件的搜索结果。在每个搜索结果旁边,我有一个图标来表示文件类型,如下所示:
<img src="/icons/ugly/powerpoint.gif" />
我想将 /icons/ugly/powerpoint.gif
更改为 /icons/pretty/powerpoint.gif< /code> 但我不允许修改 HTML。使用
/icons/pretty/powerpoint.gif
而不是 /icons/ugly/powerpoint.gif
的最佳方法是什么?
我的一个想法是在加载页面后使用 javascript 来执行此操作,但不确定这是否是一个好主意。
I have a page that shows search results of downloadable files. Beside each search result, I have an icon to denote the file type like so:
<img src="/icons/ugly/powerpoint.gif" />
I want to change the /icons/ugly/powerpoint.gif
to /icons/pretty/powerpoint.gif
but I am not allowed to modify the HTML. What is the best way to use /icons/pretty/powerpoint.gif
instead of /icons/ugly/powerpoint.gif
?
An idea I had was to use javascript to do this after I load the page, but not sure if this is a good idea.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
如果您无法编辑 HTML,有两种选择。
1) 服务器端,修改检索到的图像,可能通过使用 URL 重写。
2) 客户端,使用 JavaScript 或 JavaScript 之上的一些库工具(例如 jQuery)更改 src 属性。
处理所有图像以实现此目的的 jQuery 代码是:
There are two options, if you cannot edit the HTML.
1) Server side, modify the image retrieved, possibly via the use of URL rewriting.
2) Client side, alter the
src
attribute, using JavaScript, or some library tool on top of JavaScript, like jQuery.jQuery code to process all images to achieve this would be:
您可以在 DOM 加载后运行此脚本,但您将加载两个图像,这是低效的:
You could run this script once the DOM has loaded, but you would be loading both images which is inefficient:
唯一的办法就是使用 JavaScript,没有其他办法。使用 JavaScript,您可以操作 DOM 并更改 img 实体的 src 属性。严格来说,您并不是以这种方式更改 HTML,而是更改 HTML 的内部浏览器表示形式。
确保您的目标图像有一个唯一的 ID - 这不是必需的,但可以更轻松地查找实体。
The only way to do is, is using JavaScript, there is no other way. With JavaScript you can manipulate the DOM and change the src attribute of the img entity. Strictly speaking you aren't changing the HTML this way, but the internal browser representation of the HTML.
Make sure your target img's have got a unique ID - this is not needed but makes it easier to lookup entities.
是的,您可以使用 JavaScript 更改任何图像的 src。您首先需要使用 ID 或类名来识别哪个图像。
Yes, you can use JavaScript to change the src of any image. You first need to identify which image using an ID or class name.
如果您想在解析 html 后更改它,而不重新加载页面,您唯一的选择是使用 JavaScript 更改图像的 src 属性。
假设您的图像的 ID 为“myimage”。
这样您的图像将有一个新的来源,并将下载并显示新图像而不是上一个图像。
不管怎样,如果你有很多像你所说的具有相同 src 的图像,你应该使用空的 html 元素,比如 div,并使用 css 为每个元素分配相同的背景图像。然后您可以使用 JavaScript 更改显示的背景图像。
这样,您只需为同一类型(或类)的所有图像指定一次图像的 url。
If you want to change it after the html has been parsed, without reloading the page, your only option is to use JavaScript to change the src attribute of your image.
Suppose your image has an id of 'myimage'.
This way your image will have a new source and will download and display the new image instead of the previous one.
Anyway, if you have many images with the same src like you said, you should use empty html elements such as divs, and assign the same background image to each using css. Then you can alter the background image displayed with JavaScript.
This way you need to specify the url of your image only once for all the images of the same type (or class).
将
pretty/powerpoint.gif
移动到ugly/powerpoint.gif
Move
pretty/powerpoint.gif
tougly/powerpoint.gif
您应该使用 Javascript/Jquery 来完成此操作。 Jquery 是更简单的选择。只需在 Jquery 官方网站查找
.attr()
示例并更改图像的源路径即可。You should do this using Javascript/Jquery. Jquery is the easier option. Just look for
.attr()
examples at Jquery official site and change the source path of the image.