如何在Javascript/jQuery中将函数应用于具有相同名称的多个元素
我使用的插件,您可以添加到输入标签。我有两个模态,每个模态都包含一个输入,您可以在其中添加用户名作为标记如何在Javascript/jQuery中将函数应用于具有相同名称的多个元素,javascript,html,jquery,input,tags,Javascript,Html,Jquery,Input,Tags,我使用的插件,您可以添加到输入标签。我有两个模态,每个模态都包含一个输入,您可以在其中添加用户名作为标记 <input class="form-control" name="tags"></input> 由于属性name可以添加到多个输入中,因此不必作为id属性唯一,我将name=“tags”保留在两个模式中 问题是,当我应用插件并向输入添加标记时,它只应用于第一个模态的输入,而不是第二个模态的输入 正如您在屏幕截图中看到的,
<input class="form-control" name="tags"></input>
由于属性name
可以添加到多个输入中,因此不必作为id
属性唯一,我将name=“tags”
保留在两个模式中
问题是,当我应用插件并向输入添加标记时,它只应用于第一个模态的输入,而不是第二个模态的输入
正如您在屏幕截图中看到的,在第一个模式中,我可以选择输入中的标记,但在第二个模式中,它是空的。
我创建的函数不会生成任何错误。我尝试了console.log
我拥有的每个变量,但我无法找出问题所在
有什么建议吗?我做错了什么?多谢各位
这是我的跑步记录。为了更好地理解,我添加了评论
在代码
查询选择器中
仅选择第一个
如果要全选,必须使用querySelectorAll
var inputElm = document.querySelectorAll('input[name=tags]');
在本例中,inputElm是一个数组,所有输入都已建立,您必须修改代码以使用不同的元素。($。每个循环或其他循环)。您必须为每个输入创建tagify的实例。我建议您使用tagify数组
诸如此类:
var tagify = [];
inputElm.each(function(){
var tag = new Tagify($(this),...
:
tagify.push(tag);
}
由于属性名可以添加到多个输入中,因此不必像id属性那样必须是唯一的,我在两种模式中都保留了name=“tags”。
这“通常”是通过使用“class”属性将类似的东西分组在一起来实现的。