Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >JavaScript是否仅用一个类检索div元素的唯一“id”?

JavaScript是否仅用一个类检索div元素的唯一“id”?
EN

Stack Overflow用户
提问于 2014-03-27 09:01:22
回答 1查看 144关注 0票数 0

当编写一个JavaScript脚本来迭代一组具有相同类名的元素时,您可以分别修改它们的每个属性。

如果没有唯一的ID,脚本如何知道要编辑哪些元素?如果它们确实有唯一的ID,如何检索它们呢?使用alert();从一个简单的document.getElementsByClassName('');中显示节点数组中包含的内容似乎也显示了元素的类型。

我真的可以将这些结果存储在一个数组中以供以后使用吗?

如果在加载文档时,我获取了一个具有特定类名的元素数组:

代码语言:javascript
代码运行次数:0
复制
<script>

var buttonArray = document.getElementsByClassName('button');

</script>

然后迭代这段代码,并将'r‘位置的结果添加到一个对象中:

代码语言:javascript
代码运行次数:0
复制
<script>

var buttonArray = document.getElementsByClassName('button');
var buttonObject = {};

for(r=0;r<buttonArray.length;r+=1)
{
     buttonObject[buttonArray[r]] = [r*5,r*5,r*5];
}

</script>

我是否可以像这样找到每个带有classname 'button‘的元素的数组:

代码语言:javascript
代码运行次数:0
复制
<script>

var buttonArray = document.getElementsByClassName('button');
var buttonObject = {};

function changeCol(buttonID)
{
     var red = buttonObject[buttonID][0];
     var green = buttonObject[buttonID][1];
     var green = buttonObject[buttonID][2];
     buttonID.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
}

for(r=0;r<buttonArray.length;r+=1)
{
     buttonObject[buttonArray[r]] = [r*5,r*5,r*5];
     buttonArray[r].onclick = function(){ changeCol(this); };
}

</script>

我认为onclick = function(){ changeCol(this); };this部分应该与我存储在buttonObject对象中的唯一ID相同,也就是保存数组的变量名。

这应该起作用吗?我似乎不能在我的网页上获得它,所以我使用buttonObject中的按钮innerHTML作为保存该对象的数组的变量名。这样做的问题是,我可能需要两个或更多的按钮才能拥有相同的innerHTML。

下面是当前的网页:http://www.shadespeed.com

我需要重新制作脚本,以允许按钮具有相同的名称。

任何提示/建议都将不胜感激。

非常感谢!

  • Dan.:)
EN

回答 1

Stack Overflow用户

发布于 2014-03-27 09:09:06

假设我桌上有一副纸牌,面朝上。我想把所有红色的都翻过来。我可能会这样做:

代码语言:javascript
代码运行次数:0
复制
desk.getCardsByColour("red").forEach(flipit);
// note, obviously not real JavaScript for a not real situation :p

所以我浏览了我的卡片,找到了所有的红色卡片。然后我把它们翻过来。您所问的基本上是“如果没有唯一的if,我怎么知道应该翻哪些牌呢?”那么,我是否需要一个ID来迭代一个对象集合,在本例中是一组卡片?当然不是。

(请注意,尽管扑克牌中的卡片在其内容中确实有一个独特的属性,但让我们假设这是元素的内容,而不是id属性,好吗?)

现在,下面是我如何做你正在做的事情:

代码语言:javascript
代码运行次数:0
复制
for( r=0; r<buttonArray.length; r++) {
  buttonArray[r].buttonObject = [r*5,r*5,r*5];
  buttonArray[r].onclick = changeCol;
}
function changeCol(button) {
  var red   = button.buttonObject[0];
  var green = button.buttonObject[1];
  var blue  = button.buttonObject[2];
  button.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22682632

复制
相关文章
rabbitmq在ios中实战采坑
1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错。且用android做相同的步骤并不会报错,错误如下 Received connection: <RMQConnection: 0x600002594080> disconnectedWithError: Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalize
老梁
2019/09/10
1.1K0
我在ThoughtWorks中的敏捷实践
E项目是一个在线的物资跟踪监控系统。由ThoughtWorks团队为客户提供的一套完善的软件交付服务。
袁慎建@ThoughtWorks
2018/09/29
2.1K0
我在ThoughtWorks中的敏捷实践
实习第一天,我就辞职了
鱼皮最新原创项目教程,欢迎学习 大家好,我是鱼皮。今天这篇文章是 编程导航星球 的拳辉同学的真实实习经历分享,希望对正在找工作的小伙伴有所帮助和启发。 星球原文链接:https://t.zsxq.com/0bH99BrO7 实习第一天 今天去了心心念念的实习,来到公司的前一天晚上,我兴奋得整晚睡不着。 刚来到公司的时候,热情的人事小姐姐帮我办理好手续,拉我进群,下载钉钉,录指纹,让我十分开心,自己终于可以挣钱了哈哈。 组长带我来到工位,眼前的画面让我有点不太适应。当组长在小组面前介绍我的时候,同事们并
程序员鱼皮
2023/03/29
5060
实习第一天,我就辞职了
134. 精读《我在阿里数据中台大前端》
而阿里经济体中的 ABC,其中的 BIG DATA,即是我们 DT https://dt.alibaba.com/ ,我们用大数据赋能商业,创造价值。
黄子毅
2022/03/14
4550
134. 精读《我在阿里数据中台大前端》
无线无源中继采发仪在工程监测中的应用分析
随着科技的不断发展,无线传感技术在工程监测中的应用越来越广泛。其中,无线无源中继采发仪是一种新型的数据采集设备,能够将传感器数据通过无线信号传输到数据中心。本文旨在探讨无线无源中继采发仪在工程监测中的应用。
河北稳控科技
2023/06/08
1800
无线无源中继采发仪在工程监测中的应用分析
无线无源中继采集采发仪在工程监测中应用
无线无源中继采发仪是一种适用于工程监测领域的仪器,其优点在于便携、灵活、易安装和维护。在传统工程监测中,采集传感器数据需要通过有线连接方式进行,存在布线困难、信号受干扰以及难以扩展等问题。而无线无源中继采发仪通过使用无线信号传输的方式,可以有效解决上述问题。本文将从三个方面着重介绍无线无源中继采发仪在工程监测中的应用。
河北稳控科技
2023/06/08
2290
无线无源中继采集采发仪在工程监测中应用
当我在微调的时候我在微调什么?
从 BERT 开始,预训练模型(PLMs)+微调(finetune)已经成为了NLP领域的常规范式。通过引入额外的参数(新的网络层)和特定任务的目标函数,PLMs在该任务的数据集下经过finetune后,总能取得评价指标上的提升,甚至达到SOTA。
对白
2022/04/01
1.7K0
当我在微调的时候我在微调什么?
大数据在商业中的应用《智能时代--大数据和智能革命重新定义未来》
       美国毒品的问题很难完全遏制住源头,很多人利用废弃工厂、房屋、家里种植大麻,甚至有些人专门买别墅用LED灯管发光种,这样的利润极高,很快又能赚回来一幢别墅的钱。警察没有足够的证据不可以进屋搜查,大数据时代,他们根据每家每户的用电模式和一般居家用电模式对比,就能圈定一些犯罪嫌疑人。利用统计规律和个案做对比,做到精准定位,二是社会已经默认在取证时利用相关性代替直接证据,即强相关性代替因果关系,三是执法的成本大幅下降。
bye
2020/10/29
5160
我,在元宇宙中邂逅了爱情
---- 新智元报道   编辑:桃子 【新智元导读】在元宇宙中寻找另一半,你尝试过吗? 今年年初,一部名为「我们在虚拟现实中相遇」(We Met in Virtual Reality)的元宇宙专题纪录片首映。 其中一段情节讲述了,一位来自英国的肚皮舞娘和住在迈阿密的小伙在虚拟现实中相识,然后在一起的故事。 在元宇宙中的恋爱,你尝试过吗? 元宇宙约会 想要在元宇宙中约会,需要的是一副满电的头显和一颗开放的心。 你和伴侣可以在宁静海湾享受永无止境的海滩日落,可以在一个有魔法、移动的城堡世界里玩
新智元
2022/08/29
3340
我,在元宇宙中邂逅了爱情
纠正 | 我在持续交付课程中的授课错误
在DevOps Master中讲持续交付一课,其中讲到发布频率的篇章,中文版里面的翻译是这样的(来源于精益企业):
用户1593318
2019/11/19
1.5K0
我是这样在 React 中实践 TDD 编程的
在Redux中编写测试听起来肯定有悖直觉。如果你使用了Redux,它可能看起来更加复杂。
前端修罗场
2022/07/29
1.9K0
反思我在管理中犯过的重大错误
近一年来,我在管理中犯下的2个重要错误。该错误导致团队结构不清晰,骨干核心人员不稳定,易流失。
用户9913368
2022/12/17
1.1K0
反思我在管理中犯过的重大错误
数据在企业演进中的价值
本文作者 吴昊:腾讯SaaS加速器导师、纷享销客天使投资人、前执行总裁,具有20年企业信息化和6年SaaS营销团队创新经验。 (SaaS 创业路线图) 每个 To B 创业者都对自己客户的现状相当了解,但你知道在这个变幻莫测的 VUCA 时代,客户的企业究竟会往哪个方向发展吗? 刚过去的这个周末,我在中欧课堂上听了方二教授的创新战略课程,对此有了更全面的的认知。今天给大家分享一下。(课程现场非常精彩,我只陈述了1%的内容,大家自己找机会在各种场合现场听吧。) 方教授的课叫做《互联网和智能商业的创新
腾讯SaaS加速器
2020/06/09
7240
我在移动web开发中遇到的各种问题
目前(2015年8月3日15:02:24)在大部分安卓手机都发现这个问题,触发bug的条件知道了,但是原因未知。触发bug的条件是需要横向滚动的层不能位于纵向滚动不是body的层下面(后面有具体解释)。
黒之染
2018/10/19
1.7K0
我在 MySQL 的那些年
作者:赖铮(Allen Lai),前 MySQL 官方团队成员,专注数据库内核开发近二十年,先后就职于达梦,Teradata,北大方正以及 MySQL InnoDB 存储引擎团队,是达梦数据库内核,方正 XML 数据库,以及 MySQL InnoDB 的 GIS 支持,透明加密功能的主要开发者。现任腾讯 TEG 云架构平台部数据库团队专家工程师,负责腾讯云 CDB 数据库内核的研发。 面试 2012 年的春天,阳光明媚,鸟语花香,我正在张江的一栋橙黄色的大楼里跟我的小伙伴们一起奋力
腾讯技术工程官方号
2020/11/05
6900
我在亦庄见了说中文的爱因斯坦,会比心的熊猫,还有一场意念打字大赛
梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你根本想象不到,现在机器人为了能被人类社会接纳有多努力。 像Siri和扫地机器人一样成为人类日常生活的一部分,是机器人们共同的愿望。 每年在北京亦庄举办的世界机器人大会,成了它们每年展示自己、接受检验、倾听人类意见的考场。 这次在大会场馆担任讲解员的,是一台神似爱因斯坦的仿生机器人。 凑近了仔细看,仿生硅胶材质的皮肤上不但有皱纹和血管,甚至连老年斑都模仿出来了。 这款仿生机器人全身有68个可动关节,说话时的嘴形和面部表情可以根据音频进行匹配。 为
量子位
2023/03/01
3880
我在亦庄见了说中文的爱因斯坦,会比心的熊猫,还有一场意念打字大赛
在 Python 中解析 JSON 数据
json模块是Python 标准库的一部分,它允许你对 JSON 数据进行编码和解码。
雪梦科技
2020/06/28
17.1K0
我在微软的面试经历
大约2-3个月前,我在Linkedin上看到微软员工的一系列消息,是与微软为SDE暑期实习生招聘预赛有关。我对此非常兴奋,不想错过这次机会。
ACM算法日常
2020/11/11
1K0
我在微软的面试经历
python在sqlite中插入数据
python通过引入sqlite的包,就能够直接操作sqlite数据库 import sqlite3 import math cx=sqlite3.connect("mydatabase.sqli
py3study
2020/01/06
3.9K0
我的WCF之旅(3):在WCF中实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。 一、两种典型的双工MEP 1.请求过程中的回调 这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象;服务在对处理该处理中,通过客
蒋金楠
2018/01/16
1.1K0
我的WCF之旅(3):在WCF中实现双工通信

相似问题

有效地聚集了熊猫的日期时间。

10

熊猫:在完整的数据上重新分割

10

在熊猫数据栏中重新排列行

20

推后采樱桃

10

Regex多采

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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