- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请原谅我的极端天真……我正在尝试使用 getElementByName 方法执行 JavaScript,但本质上,当我到达该站点时,我希望在数量字段中输入 0(15 秒后)到达所述站点)。
这是我检查数量字段时得到的结果 -
<input type ="text" name="quantity" value="1" size="3">
function emptylocation() {
var myVar = setInterval(emptylocation, 15000);
(document.getElementByName("quantity")[0].value = 0)
(document.getElementByName("quantity")[1].value = 0)
(document.getElementByName("quantity")[2].value = 0)
(document.getElementByName("quantity")[3].value = 0)
(document.getElementByName("quantity")[4].value = 0)
(document.getElementByName("quantity")[5].value = 0)
}
最佳答案
document.getElementsByName()
一种旧方法,在涉及 for
的边缘情况下会产生意外结果循环。而是使用 document.querySelectorAll()
* 这是 DOM 方法的瑞士军刀TM。将左侧的以下方法替换为右侧的方法:
<article class='x' name='x'></article>
// ... Any amount of DOM elements that meet specific traits
document.getElementsByClassName('x') /* ------> */ document.querySelectorAll('.x')
document.getElementsByName('x') /* -----------> */ document.querySelectorAll('[name=x]')
document.getElementsByTagName('article') /* --> */ document.querySelectorAll('article')
* 另请参阅此 article
document.forms
& .elements
如果这些 DOM 元素是表单控件(也称为字段 - 例如 <input>
、 <select></select>
等),并且位于 <form></form>
内(它们应该是这样,尽管没有 <form></form>
仍然有效)-- .forms
和.elements
可以使用的属性:
<form id='x'>
<input name='z'>
// ... Any amount of fields with the name of 'z' (ie ['name=z'])
</form>
// Reference form#x
const fx = document.forms.x
// Reference all form controls within form#x
const fc = fx.elements
// Reference all form controls with ['name=z'] within form#x
const fz = fc.z
/* OR */
/* The above statements in one line */
const fXCZ = document.forms.x.elements.z
<小时/>
详细信息在演示中评论
//~~[1]~~
/* Reference DOM Elements *///
//1a.
/* Example 1 */
// Reference all fields within form#example1
const exp1 = document.forms.example1.elements;
/*
Collect all input[name=quantity] within form#example1 into a HTML Collection
*/
const qty1 = exp1.quantity;
//1b.
/* Example 2 */
// Reference form#example2
const exp2 = document.getElementById('example2');
/*
Collect all input within form#example2 into a NodeList
*/
const qty2 = exp2.querySelectorAll('input');
//~~[2]~~
/* Define Function *///
//2.
/*
@Params collection -- An array-like object of fields (ex. qty1 or qty2)
dataString -- A String assigned to each field - defaults to "0"
if not specified
*/
function changeValue(collection, dataString = "0") {
collection.forEach(field => field.value = dataString);
}
//~~[3]~~
/* Invoke setTimeout() *///
//3a.
/* Example 1 */
setTimeout(function() {
changeValue(qty1, '0');
}, 15000);
//3b.
/* Example 2 */
setTimeout(function() {
changeValue(qty2);
}, 15000);
<form id='example1'>
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
</form>
<hr>
<form id='example2'>
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
<input name="quantity" type="number" value="1" size="3">
</form>
关于javascript - getElementsByName() javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962231/
第一个示例(type="button" 是故意的)应该可以工作: function saveChanges(form) { const id = docume
我试图通过本教程学习一些 JavaScript 并为我的网页制作一个模式 Building Your Own JavaScript Modal Plugin 当我意识到他通过 ID 捕获元素并且我有多
我有一个自动呈现的 HTML 表单,它使用输入字段的索引。 数量: 产品价格; 总行价格; 对于以下几行,id 和名称的索引增加,仅显示数量示例; 我想使用以下 JavaScript 来计算总
我是一个 javascript 新手,我已经尝试过这个。 #WoodNumInput { width:40px; } var i; var woodtypeAB = ["AB_W15_L10
请原谅我的极端天真……我正在尝试使用 getElementByName 方法执行 JavaScript,但本质上,当我到达该站点时,我希望在数量字段中输入 0(15 秒后)到达所述站点)。 这是我检查
这是我的 JavaScript: var crct_answrs = new Array(); var answrs = new Array(); function chec
以下代码旨在更改一个字段的颜色: Untitled Document var bkColor =
所以在 JS 中,我克隆了一个元素并更改了它的所有子元素 name 以更改它们的索引(例如 instanceActeurRole[0].siteId 变为 instanceActeurRole[ 3]
我正在使用一组这样的按钮: 14,5 29,0 43,5 58,0 72,5 我一直在尝试使用以下方法查找所选按钮的值: document.getElementsByName('aantal_pl
以下代码在按下按钮时执行。它可以很好地提醒 getElementsByName 数组的一个字符串,但是当引入循环时,它仍然仅提醒第一个字符串值,仅此而已: function checkvals() {
我正在为我制作一些自动求和输入计算器,但我遇到了问题,因为我不知道如何选择具有不同名称的多个输入。我知道我可以只使用“输入”而不是确切的名称,但我需要只对 5-6 个输入进行计算,而不是全部,所以请帮
Javascript 的 getElementsByName(...) 返回的值是否保证与它们在 DOM 中出现的顺序相同? 最佳答案 对于 getElementsByName(name), 名称
为什么下面的代码不起作用(不执行警报)? custom_table是html中的一些文件上传字段,长度为10。 var custom_table=document.getElementsByName(
我正在从事一个自动化项目,在该项目中我有一个带有搜索框的网络适配器,但没有搜索按钮,继续进行的唯一方法是按回车键。我发现之前的一个线程提供了通过 ID 获取文本框元素的解决方案,但是在这种情况下,每次
有没有一种方法可以在不从 DOM 根开始的情况下使用 getElementsByName。 例如,我有一个 div 元素,我想从该元素开始搜索。 如果不是,那么我是否必须编写自己的函数来递归地遍历子节
var elem=document.getElementsByName('lala'); alert(elem.length); 弹出警报0!?所以这使得下一个不起作用!? for(i in
我正在尝试从头开始编写 getElementByClassName,但我不确定何时返回递归。这就是我想到的: const getElementsByClassName = (nameOfClass
查找了这个问题的几个“答案”,但大多数只是人们没有将 getElementsByName() 返回的结果视为 NodeList! 编辑:我试图根据被点击的元素隐藏/显示元素。我可以使用 documen
当我命名我的控件以便在 POST 或 GET 中获取数组时,我经常使用这种表示法。 所以在我的脚本中我可以做 $value) { doSomething(); } ?> 经常发生我需要在
如何在 getElementsByName 中使用正则表达式遍历所有元素? 最佳答案 如果你的意思是: var elementArray = document.getElementsByName("/
我是一名优秀的程序员,十分优秀!