使用window.location.hash检查和添加URL哈希值

4

现在,如果我有多个链接使用:

Options 1:
<a href="javascript:;" onClick="window.location.hash+='A'">Option A</a>
<a href="javascript:;" onClick="window.location.hash+='B'">Option B</a>
<a href="javascript:;" onClick="window.location.hash+='C'">Option B</a>

Options 2:
<a href="javascript:;" onClick="window.location.hash+='1'">Option 1</a>
<a href="javascript:;" onClick="window.location.hash+='2'">Option 2</a>
<a href="javascript:;" onClick="window.location.hash+='3'">Option 3</a>

Options 3:
<a href="javascript:;" onClick="window.location.hash+='X'">Option X</a>
<a href="javascript:;" onClick="window.location.hash+='Y'">Option Y</a>
<a href="javascript:;" onClick="window.location.hash+='Z'">Option Z</a>

无论点击哪个选项,都会将其添加到URL中。有没有办法检查当前哈希是否已存在(例如,如果哈希字符串中的第三个字符,则替换为当前哈希)。非常感谢您的任何帮助!即使用户在选择选项之间来回移动,我也想实现以下最终结果:
http://mydomain.com/question-page#A3Y 
1个回答

3

将其更改为 += 以连接字符串:

window.location.hash+='A';

我会做以下操作:
首先,为每个可能的选项创建变量:
```html

首先,为每个可能的选项创建变量:

```
var option1 = "";
var option2 = "";
var option3 = "";

接下来,创建一个设置哈希值的函数:

function generateHash() {
  window.location.hash = option1 + option2 + option3;
}

最后,在onclick事件中设置这些选项,并生成散列值:
<a href="javascript:;" onClick="option1 = 'A'; generateHash();">Option A</a> 
 ...
<a href="javascript:;" onClick="option2 = '1'; generateHash();">Option 1</a>
...
<a href="javascript:;" onClick="option3 = 'X'; generateHash();">Option X</a>

那个代码是可以工作的,但是有没有一种方法可以检查当前哈希值并在存在时进行替换呢?问题在于,在我上面的示例中,某人可以选择一个选项的所有3个,它只会继续添加到URL中。 - taylor
然后,您应该将其通过一个函数运行,该函数将执行替换。顺便说一下,您已经标记了jQuery,但是您的帖子中没有jQuery,因此您应该删除该标记。 - kennypu
抱歉,我已将其编辑掉了。我认为jQuery可能有我需要的解决方案。 - taylor
我改了答案,应该是你要找的。 - kennypu
这个更新的答案完美地实现了我想要做的事情,太棒了。非常感谢! - taylor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接