Javascript 当输入到不同的文本框中时,程序对同一字符串的处理方式不同

Javascript 当输入到不同的文本框中时,程序对同一字符串的处理方式不同,javascript,html,dom,local-storage,Javascript,Html,Dom,Local Storage,我有一个程序,应该把链接分组在一起。与minecraft保存的工具栏一样,您可以保存一组链接,然后输入组名,它将打开所有链接 但是,当名称被输入到用于获取链接的文本框中时,我的程序在从localStorage获取列表时遇到问题。但当我只使用文本框的值来命名组时,效果很好 我的代码在这里: var groupName=document.getElementById('name'); var link=document.getElementById('newLink'); var linkCoun

我有一个程序,应该把链接分组在一起。与minecraft保存的工具栏一样,您可以保存一组链接,然后输入组名,它将打开所有链接

但是,当名称被输入到用于获取链接的文本框中时,我的程序在从localStorage获取列表时遇到问题。但当我只使用文本框的值来命名组时,效果很好

我的代码在这里:

var groupName=document.getElementById('name');
var link=document.getElementById('newLink');
var linkCounter=0
var getByName=document.getElementById('getByName')。值
函数startGroup(){
setItem(groupName.value,groupName.value);
log(localStorage.getItem(groupName.value))
}
函数addLink(){
linkCounter++;
localStorage.setItem(groupName.value+''u link'+linkCounter,link.value);
console.log(localStorage.getItem(groupName.value+'\u link'+linkCounter))
}
函数存储组(){
localStorage.setItem(groupName.value+'_length',linkCounter);
console.log(localStorage.getItem(groupName.value+'\u length'))
警报(groupName.value);
}
函数getGroup(){
//如果我用groupName.value替换getByName,它就可以正常工作。
var len=localStorage.getItem(getByName+“\u length”)
console.log(len)

对于(var x=1;x您正在页面加载时读取
getByName
输入元素的值。您应该在需要时读取该值。因此,将
getByName
定义为DOM元素(而不是其值):

在当前引用
getByName
的位置,为
.value
属性访问器添加后缀。例如:

var len = localStorage.getItem(getByName.value + '_length');

旁注:我发现对所有数据使用内存数据结构更容易,并且当添加了一些内容时,可以将完整的数据结构写入一个JSON格式的本地存储键。您可能想了解一下这一点。

这很好,但是当我从repl运行它时,为什么它会像其他3个选项卡一样打开?因为您调用了
window、 在循环中打开
?这不是你想要的吗?如果不是,那么就不要执行循环…我的意思是我想要的三个选项卡,然后是三个“未找到”选项卡我不知道…你调试了吗,你给
窗口的URL是什么。打开
?它们有效吗?好的,那么程序实际上正在运行window。打开(null)for循环的每次迭代一次。
var len = localStorage.getItem(getByName.value + '_length');