首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在JavaScript中更改基于文本框输入的数组中的图像?

如何在JavaScript中更改基于文本框输入的数组中的图像?
EN

Stack Overflow用户
提问于 2013-04-16 22:25:33
回答 1查看 1K关注 0票数 1

我正在尝试使我的页面,以便用户可以输入一个介于1和200之间的数值来获得他们想要查看的任何图像。我已经摆弄了一下代码,但我似乎什么都做不了。下面是我的代码,我尝试用它来做这件事。我做错了什么?

编辑:新代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`
<html>
<head>
<title></title>
</head>
<body style="background-color: teal;">
<form>
<center>
<div width="50%" style="width: 50%;">
<div id="main" align="middle">
<img src="page1.jpg" alt="" id="mainImg" height="90%">
</div> 
<div id="imglist">
<a href="javascript:previousImage('mainImg')"><img src="previous.png" alt="" 
align="left"></a>
<input id="myid" name="myid" size="3" type="text"></input>
<a href="javascript:nextImage('mainImg')"><img src="next.png" alt="" align="right"></a>
<script>
var imgArray = new Array();

var imgs = [];
for (var i = 0; i < 200; i++) {
imgs[i] = new Image();
imgs[i].src = "page" + (i + 1) + ".jpg";
}


function nextImage(element)
    {
    var img = document.getElementById(element);

    for(var i = 0; i < imgArray.length;i++)
    {
        if(imgArray[i].src == img.src) // << check this
        {
            if(i === imgArray.length){
                document.getElementById(element).src = imgArray[0].src;
                break;
            }
            document.getElementById(element).src = imgArray[i+1].src;
            break;
        }
    }
}

function previousImage(element)
{
   var img = document.getElementById(element);

   for(var i = 0; i < imgArray.length;i++)
  {
      if(imgArray[i].src == img.src)
      {
         if(i === 0){
            document.getElementById(element).src = imgArray[imgArray.length-1].src;
            break;
         }
         else{
            document.getElementById(element).src = imgArray[i-1].src;
            break;
         }
      }
   }
}

window.onload = function() {
   var elm = document.getElementById("myid"),
   var img = document.getElementById("mainImg");
   elm.onkeyup = function(event) {
      if (this.value) {
         var num = parseInt(this.value, 10);
             if (num >= 1 && num <= 200 {
            img.src = "page" + num + ".jpg";
         }
      }
   }
} 
</script>
</div>
</div>
</center>
</form>
</body>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 22:29:56

也许你的意思是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (this.value.length === 1,2,3) {

要做到这点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (this.value.length <= 3) {

此外,我认为您希望将整个输入值转换为数字,而不是使用单独的按键代码。

我可能会推荐这种不同的/更简单的方法来做这件事,它更具DRY (不要重复自己):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// preload images
var imgs = [];
for (var i = 0; i < 200; i++) {
    imgs[i] = new Image();
    imgs[i].src = "page" + (i + 1) + ".jpg"; 
}

window.onload = function() {
   var elm = document.getElementById("myid");
   var img = document.getElementById("mainImg");
   elm.onkeyup = function(event) {
      if (this.value) {
          var num = parseInt(this.value, 10);
          if (num >= 1 && num <= 200) {
              img.src = "page" + num + ".jpg";
          }
      }
   }
} 

工作演示:http://jsfiddle.net/jfriend00/4dqbP/

更改摘要:

  1. 在循环中预加载图像而不是复制的代码
  2. 将图像名称img变量构造为局部变量,而不是前面带有var的隐式全局变量
  3. 检查输入字段是否为空
  4. 使用parseInt()将输入字段的值解析为数字
  5. 范围检查解析的数字
  6. 如果在有效范围内,则使用该数字构造图像名称
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16048249

复制
相关文章
【点滴】如何在JavaScript中清空数组?
在使用 JavaScript 数组时,一个很常见的问题是如何清空数组并删除其所有元素。有几种方法可以解决这个问题,每种方法都各有利弊。
疯狂的技术宅
2021/03/16
3.3K0
Javascript中的数组
数组的定义: var colors = new Array(20); var colors = new Array('red');  // ['red'] var colors = ['red', 'green']; 判断变量是不是数组: colors instanceof Array;  //true Array.isArray(colors); //true 将数组转化为字符串: colors.toString(); // 'red,green' colors.join(' ')
宅蓝三木
2018/02/07
3.1K0
JavaScript中的数组创建
数组是一个包含了对象或原始类型的有序集合。很难想象一个不使用数组的程序会是什么样。
疯狂的技术宅
2019/03/27
3.5K0
Javascript中数组的使用
Array在Javascript程序开发中是一个经常使用到。一个数组可以存储Javascript支持的任何数据类型。 1.基本知识点 //创建一个对象并初始化它 var preInitArray = new Array("First Item", "Second Item", "Third Item"); for (var i = 0; i < preInitArray.length; i++) { console.log(preInitArray[i]); }
八哥
2018/01/18
8.4K0
6 - JavaScript 中的数组
原文地址:https://dev.to/bhagatparwinder/arrays-in-javascript-5fc7
前端黑板报
2022/04/19
1.7K0
6 - JavaScript 中的数组
如何在 JavaScript 中操作二维数组
JavaScript 本身不提供多维数组,但是,可以通过定义元素数组来创建多维数组,其中每个元素也是另一个数组,出于这个原因,可以说 JavaScript 多维数组是数组的数组,即嵌套数组。定义多维数组的最简单方法是使用数组字面量表示法。
玖柒的小窝
2021/11/16
4.7K0
如何在 JavaScript 中操作二维数组
Java中数组的输入输出
调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
全栈程序员站长
2022/08/31
1.4K0
jQuery 文本框中只能输入正整数
(1).$(document).ready(function(){}),当文档结构完全加载完毕再去执行函数中的代码。
IT工作者
2022/02/23
3.1K0
javascript数组怎么定义_js中的数组
每一门编程语言,都有数组或类似数组的结构,同样的JavaScript(虽然是脚本语言)也不例外,学习JavaScript的数组,我们从新建第一个数组开始:
全栈程序员站长
2022/11/10
3.1K0
javascript数组怎么定义_js中的数组
javascript实时显示文本框输入字数
(1).function CountWords(obj, show_id) {},第一个参数是文本框对象,第二个参数是显示字符的id。
IT工作者
2021/12/29
3.6K0
java中怎么输入数组_java中如何从键盘输入数组
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
全栈程序员站长
2022/09/13
4K0
如何在Linux中更改SSH端口?
SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。
网络技术联盟站
2023/05/25
9.5K0
如何在Linux中更改SSH端口?
Javascript中的数组对象排序(转载)
js中用方法sort()为数组排序。sort()方法有一个可选参数,是用来确定元素顺序的函数。如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序。如:
李维亮
2021/07/08
8K0
如何在 Linux 中更改主机名?
在 Linux 系统中,主机名是用于标识和区分网络上的不同计算机的名称。默认情况下,Linux 发行版会分配一个主机名给您的计算机,但是有时候您可能需要根据自己的需求更改主机名。在本文中,我们将详细介绍如何在 Linux 中更改主机名,以及更改主机名后可能涉及到的其他配置。
网络技术联盟站
2023/06/09
8.8K0
如何在 Linux 中更改主机名?
如何在 Eclipse 中更改注释块的 @author 版权信息?
我们在使用 IDE——Ecilpse 进行开发,需要注明版权信息的时候,如果不更改默认设置的话,在注释块 @author 的内容就是电脑系统默认的,例如下图所示。为了开发方便就需要进行修改。
白鹿第一帅
2021/03/02
4.5K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
如何在 Linux 中更改 Nginx 80 端口?
Nginx 是一个开源的轻量级 Web 服务器替代 apache 来处理高流量的网站。
网络技术联盟站
2022/06/21
5.4K0
如何在 Linux 中更改 Nginx 80 端口?
如何在 Linux 中更改 Apache HTTP 端口?
Apache Web Server 是一个免费的开源跨平台 Web 服务器应用程序,用于通过 Internet 提供内容。
网络技术联盟站
2022/06/21
6.3K0
如何在 Linux 中更改 Apache HTTP 端口?
如何在Linux中更改用户ID?
在Linux系统中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的权限和资源访问。有时候,我们需要更改用户ID,可能是为了解决冲突、重组用户组或其他管理需求。本文将详细介绍如何在Linux中更改用户ID的几种方法。
网络技术联盟站
2023/06/08
8.5K0
如何在Linux中更改用户ID?
点击加载更多

相似问题

数组中基于输入值的javascript数组

22

基于文本框输入的图像显示

22

基于文本框输入的Javascript removeEventListener

10

从JavaScript中的输入文本框获取数组

22

Javascript -基于dom中的图像构建数组。

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

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