首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将<img>元素指定为javascriptvariable的值

将<img>元素指定为javascriptvariable的值
EN

Stack Overflow用户
提问于 2017-07-29 00:37:23
回答 2查看 844关注 0票数 1

我正在创建一个使用Javascript的待办事项列表应用程序,我想使用一个.png图像显示一个删除和完整的图标。我为图像创建了两个变量,并使用<img src="images/complete.png" height="30">作为变量的值。但是,当我在浏览器上加载时,图像不会显示。

app快照

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var image1 = '<img src="images/deleteicon.png"  height="30" >';
var image2 = '<img src="images/complete.png"  height="30" >';

document.getElementById('add').addEventListener('click', function(){
  var value = document.getElementById('item').value;
  if(value){
    addItemToDo(value);
  }
})

function addItemToDo(text){
  var list = document.getElementById('todo');

  var item = document.createElement("li");
  item.innerText = text;

  var buttons = document.createElement("div");
  buttons.classList.add("buttons");

  var remove = document.createElement("button");
  remove.classList.add("remove");
  remove.innerHtml = image1;

  var complete = document.createElement("button");
  complete.classList.add("complete");
  complete.innerHtml = image2;

  buttons.appendChild(remove);
  buttons.appendChild(complete);
  item.appendChild(buttons);
  list.insertBefore(item,  list.childNodes[0]);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>To Do List</title>
    <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
    <link type="text/css" href="Css/style.css" rel="stylesheet">
  </head>
  <body>
    <header>
      <input placeholder="Enter a task" id="item">
      <button type="button" ><img src="images/add.png" alt="Add" height="30" id="add"></button>
   </header>
   <div class="container">
     <ul class="todo" id="todo">
      <li>
         This is an Item
         <div class="buttons">
           <button class="remove" ><img src="images/deleteicon.png" alt="Add" height="30" id=""></button>
           <button class="complete"><img src="images/complete.png" alt="Add" height="30" id=""></button>
         </div>
       </li>



     </ul>

   </div>
   <script type="text/javascript" src="Js/main.js">

   </script>
  </body>
</html>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-29 01:46:44

但是,当我在浏览器上加载时,图像不会显示。

这是因为你试图用错误的方式做这件事。这里的想法是创建html元素,然后像@Lucky所显示的那样将src属性分配给它。不过,我想改进他的解决办法。请注意,图像可能很大,或者可能出现一些网络问题。它可能会显著延迟图像加载,如果不能正确处理这种情况,用户可能会看到浏览器的默认损坏图像图标或图像本身缓慢加载到页面中。要处理这种情况,可以将onload事件用于<img>,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function loadImage(elem, imgPath, callback) {
    var newImg = new Image();
    newImg.onload = function() {
        // insert it into the page. this is equal to newImg - our image element
        elem.appendChild(this); 
        // you can do something else passing down image or element to a callback function
        callback(this); 
    }
    newImg.src = imgPath;
    newImg.classList.add("img");
}

var elem = document.getElementById('test');
var imgPath = 'http://rcysl.com/wp-content/uploads/2017/02/Pics-Of-Nature-HD-.jpg';

loadImage(elem, imgPath, otherfunction);

function otherfunction(param) {
    console.log('Some action with ' + param);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.img {
    width: 50%;
    border: 1px solid orange;
    display: block;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="test">My image:</div>

以上是基于回调的非常简单的示例。您可能希望使用对象或本机JS 对象异步加载映像,然后在完成映像时执行一些操作。

票数 1
EN

Stack Overflow用户

发布于 2017-07-29 00:47:42

更新:

页面加载上的预加载图像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function preloadImage(url) {
    (new Image()).src = url;
}
var image1Url = 'http://via.placeholder.com/50?text=Done',
    image2Url = 'http://via.placeholder.com/50?text=Remove';
    
function createImageElement(url){
    var image1 = document.createElement('img');
    image1.src = url;
    return image1;
}

// preload the images 
preloadImage(image1Url);
preloadImage(image2Url);


document.getElementById('add').addEventListener('click', function(){
  var value = document.getElementById('item').value;
  if(value){
    addItemToDo(value);
  }
})

function addItemToDo(text){
  var list = document.getElementById('todo');

  var item = document.createElement("li");
  item.innerText = text;

  var buttons = document.createElement("div");
  buttons.classList.add("buttons");

  var remove = document.createElement("button");
  remove.classList.add("remove");
  remove.appendChild(createImageElement(image1Url));

  var complete = document.createElement("button");
  complete.classList.add("complete");
  complete.appendChild(createImageElement(image2Url));

  buttons.appendChild(remove);
  buttons.appendChild(complete);
  item.appendChild(buttons);
  list.insertBefore(item,  list.childNodes[0]);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>To Do List</title>
    <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
    <link type="text/css" href="Css/style.css" rel="stylesheet">
  </head>
  <body>
    <header>
      <input placeholder="Enter a task" id="item">
      <button type="button" ><img src="images/add.png" alt="Add" height="30" id="add"></button>
   </header>
   <div class="container">
     <ul class="todo" id="todo">
      <li>
         This is an Item
         <div class="buttons">
           <button class="remove" ><img src="images/deleteicon.png" alt="Add" height="30" id=""></button>
           <button class="complete"><img src="images/complete.png" alt="Add" height="30" id=""></button>
         </div>
       </li>



     </ul>

   </div>
   <script type="text/javascript" src="Js/main.js">

   </script>
  </body>
</html>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45387210

复制
相关文章
使用python扫描文件夹获取所有文件路径
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
JQ实验室
2022/01/11
4.4K0
python获取Windows特殊文件夹路径代码
有时候你想给你的程序添加桌面快捷方式,但却连桌面的准确路径都不知道,还好微软的API给出了一些特殊文件夹路径的获取方法,再利用python的win32com模块(非标准库)即可在python中实现同样的操作!
用户7365393
2021/11/02
1K0
python获取Windows特殊文件夹路径代码
有时候你想给你的程序添加桌面快捷方式,但却连桌面的准确路径都不知道,还好微软的API给出了一些特殊文件夹路径的获取方法,再利用python的win32com模块(非标准库)即可在python中实现同样的操作!
代码伴一生
2021/11/02
1.1K0
python获取Windows特殊文件夹路径代码
有时候你想给你的程序添加桌面快捷方式,但却连桌面的准确路径都不知道,还好微软的API给出了一些特殊文件夹路径的获取方法,再利用python的win32com模块(非标准库)即可在python中实现同样的操作!
用户7705674
2021/11/01
1.3K0
Java web项目如何获取某个文件夹下面的文件路径 绝对路径 ?
代码如下: 将upload  换成你要加载的文件夹即可 String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", ""); String docRoot = classpath.replaceAll("WEB-INF/classes/", "upload"); String filePath=docRoot+ "/" + fileName;
爱明依
2019/03/12
4.7K0
Golang
记录一下,方便下次使用: const dataFile = "../conf/db.yml" skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,.... _, filename, _, _ := runtime.Caller(1) datapath := path.Join(path.Dir(filename), dataFile) golog.Info("================="+datapath+"------------------------------------------"
时光_赌徒
2020/05/26
5.1K0
【整理】SpringBoot默认的各种路径(如静态资源路径,配置文件路径等)
传统的Java Web项目,一般是新建一个WebContent目录,然后所有页面,js等静态资源都放在里面。但是在SpringBoot的规范里,不需要这么做
RRT冻羊
2022/11/03
5.5K0
OC中根据文件路径获取文件大小
NSString * cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
用户1451823
2018/09/13
2.7K0
Java文件路径/服务器路径的获取
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157583.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
4.3K0
如何在 MSBuild 的项目文件 csproj 中获取绝对路径
通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义。这个时候,就需要将相对路径在 csproj 中转换为绝对路径来使用。
walterlv
2023/10/22
2970
Python-os-01-获取当前文件所在文件夹路径
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
zishendianxia
2019/10/23
1.5K0
input file获取文件路径
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160948.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/16
6.8K0
C#利用浏览按钮获得文件路径和文件夹路径
{ using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Multiselect = true; if (dialog.ShowDialog() == DialogResult.OK) { try { this.tbFilePath.Text = dialog.FileName; } catch(Exception ex) { throw(ex); } } }
全栈程序员站长
2022/07/15
9680
Java 中几种获取文件路径的方式
Java 开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。
码农小胖哥
2020/02/24
11.5K0
PHP 中获取文件名及路径
1. basename(“/mnt/img/image01.jpg”)函数:得到文件名;输出结果为:image01.jpg.
超级小可爱
2023/02/20
8.2K0
java中获取文件的服务器路径
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157487.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/18
2.5K0
Android通过URI获取文件路径
之前在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。 很快,拍照的这部分就搞定了。那么相册中选择图片的也是一样的道理,应该也是轻松解决了。 至于选择图片的代码,如下所示: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); inte
俞其荣
2018/05/21
3K0
获取MySQL配置文件路径
在实际工作中,MySQL可能会涉及多个配置文件,但是因为各种原因我们无法找到它们的路径,那么我们可以通过以下命令找到:
全栈程序员站长
2022/08/30
3.7K0
js获取所选文件路径
本来今天想用vue做一个button,点击后选择本地文件,并获取文件路径,但只在html下实现了,vue下还要研究下。
efonfighting
2019/10/16
14.5K0
什么是文件路径,Python中如何书写文件路径?
当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。Python提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。
用户8442333
2021/11/30
6.6K0

相似问题

使用带有Knockout的Firebug会导致“无响应脚本错误”

10

引入模式弹出窗口会导致手机和平板电脑上的触摸区域无响应

10

弹出容器中的按钮会导致整个容器解体。

27

为什么下面的javascript会导致无响应的脚本错误?

20

添加额外的循环会导致无响应

21
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文