提问者:小点点

获取cookie并为每个循环执行


document.cookie = "btnname=btnname1#btnname2#btnname3";
document.cookie = "otherstuff=...";

我需要为cookie中的每个名称创建一个foreach循环,并再次选中复选框。 我不知道如何只获取btnname值。 如何获取字符串值?

str = ???
var btnname str.split("#");
btnname.forEach(function)
function(){
      document.getElementsByName(btnname).checked = true;
}

共1个答案

匿名用户

如果需要正确解析字符串,需要首先获取等号(=)后的部分。 之后,只需用分隔符(#)拆分即可。

一旦有了所有的名称,就用这个名称找到元素。 您可以通过字段名称直接访问表单上的字段。

null

const cookieValue = 'btnname=btnname1#btnname2#btnname3';

const applyState = (form, value) => {
  const substr = value.substring(value.indexOf('=') + 1);
  substr.split(/#/g).forEach(id => form[id].checked = true);
};

applyState(document.forms.example, cookieValue);
<form id="example">
  <input type="checkbox" name="btnname1" />
  <input type="checkbox" name="btnname2" />
  <input type="checkbox" name="btnname3" />
  <input type="checkbox" name="btnname4" />
  <input type="checkbox" name="btnname5" />
</form>