如何在同一页面上为两个可点击元素提供不同的URL?

时间:2015-02-12 17:11:51

标签: javascript jquery html url

我在HTML中有两个可点击的元素,如下所示:

HTML

var node1 = $('<a href="#" class="list-group-item"">' + fileName1 + '</a>');
var node2 = $('<a href="#" class="list-group-item"">' + fileName2 + '</a>');

他们属于url说的页面:

http://foobar/examples.html

他们附加onclick个侦听器,从服务器检索一些数据并将其显示在网页上

的Javascript

node1.click(function () {/*Displays table1*/})
node2.click(function () {/*Displays table2*/})

我想更改两次点击的网址,这样如果我在新标签页中打开网址,我会点击node元素并显示数据。例如,从概念上讲,以下网址应指向点击的node1及其可见数据:

http://foobar/examples.html##fileName1  (does not work, but you get the idea)

我不想根据已解释的here更改URL,因为我不想为每个fileName创建一个HTML页面(这是一个增加的列表)。锚点无法帮助,因为它们只是打开http://foobar/examples.html而没有点击nodesthis question的答案对我来说都不是很清楚。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您为更改网址提供的第一个链接就是您想要的。但是,您不会更改HTML页面 - 您可以添加 URL变量。例如:

http://www.example.com/mypage.html?node1=1&node2=1

然后,您需要在文档顶部编写一个Javascript函数来读取URL变量,并在加载文档时显示设置为1(或您选择的任何值)的节点。有关如何阅读URL变量的示例,请参阅this answer

答案 1 :(得分:0)

您可以为您的节点提供标识符,例如:

var node1 = $('<a href="#" class="list-group-item" id="fileName1">' + fileName1 + '</a>');
var node2 = $('<a href="#" class="list-group-item" id="fileName2">' + fileName2 + '</a>');

您需要将文件名调整为有效ID。

添加以下JS:

var nodeId= window.location.hash;
$(nodeId).click(); 

然后你可以使用:

http://foobar/examples.html#fileName1 (where fileName1 is adjusted as for IDs).