javascript - 有没有办法检查我在两个输入之间选择了哪个输入 ="file"?

标签 javascript html

我有两个 file="input"字段,带有一个输出字段,其中一个是:

<input type="file" name="files[]" id="files" multiple accept="image/jpeg, image/png, image/gif,"><br />
<output id="Filelist" style="max-width: 630px;"></output>

另一个是:

<input type="file" name="files[]" id="files2" multiple accept="image/jpeg, image/png, image/gif,"><br />
<output id="Filelist2" style="max-width: 630px;"></output>

现在,我尝试在 JavaScript 中执行一个方法,但该方法的执行取决于我选择的输入字段。

document.getElementById('Filelist').insertBefore(ul, null);
document.getElementById('Filelist2').insertBefore(ul, null);

我已经应用了上面的代码,但它只执行

document.getElementById('Filelist2').insertBefore(ul, null);

但是,当我删除上述行时,它会执行 document.getElementById('Filelist').insertBefore(ul, null);

有没有办法让我找出正在使用哪个输入,以便我可以将其分配给变量?

最佳答案

这是因为一个 child 不能有多个 parent 。您尝试插入同一个 child 。对于每个 insertBefore,您需要创建一个单独的 ul。为了解决您的问题,您可以使用 document.querySlectorAll 并迭代它,并在每次迭代期间创建一个新的 ul 并添加插入它

document.querySelectorAll('.output').forEach(function(item) {
  var ul = document.createElement('ul');
  item.insertBefore(ul, null);

})
ul {
  border: 1px solid red;
  height: 20px;
}
<input type="file" name="files[]" id="files" multiple accept="image/jpeg, image/png, image/gif,"><br />
<output id="Filelist" class='output' style="max-width: 630px;"></output>


<input type="file" name="files[]" id="files2" multiple accept="image/jpeg, image/png, image/gif,"><br />
<output id="Filelist2" class='output' style="max-width: 630px;"></output>

关于javascript - 有没有办法检查我在两个输入之间选择了哪个输入 ="file"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55685454/

相关文章:

javascript - 用于验证多个条件的正则表达式

javascript - 在 Typescript 中声明类型时,类型 'never[]' 的参数不可分配给类型 'never' 的参数

选择框中的 JavaScript for 循环

javascript - 如何使用javascript在html中按回车键调用函数?

html - 如果多行文本不够宽,我怎么能让它们居中,如果它们填满整个宽度,我怎么能证明它们是合理的?

javascript - 使用 JavaScript 将 CSS 更改一次性应用到整个类

javascript - 谷歌图表将标题显示为标签

html 列表链接不起作用

javascript - 单击后重置功能

javascript - jquery - 将附加元素链接到其父元素 :