我在网页中有一个链接列表,用户可以点击并评论它们。我通过JSON加载链接,每个链接由id唯一标识。
我的问题是如何知道点击了哪个链接?即使我有一个id,我在哪里存储它(如果是Javascript对象,怎么样?)?我想我不能把它作为标签属性,因为用户可能会改变它。
答案 0 :(得分:1)
听起来您希望能够创建指向具有特定ID的页面的链接,而不实际显示ID?如果是这种情况,我认为你会以一种简单的方式遇到困难,因为javascript客户端和用户很可能无论如何都能改变id。我建议将id保留在链接中(例如<a href="url.com/post/42>
),而是在加载页面时,以某种方式检查提供的URL是否实际上是有效的现有ID。
答案 1 :(得分:1)
您可以使用对最终用户隐藏的数据属性。
例如:<a id="link1" data-myuniqueid="XXXXX"> Link1 </a>
使用Javascript,您可以访问/修改数据值
var ele = document.getElementById("link1");
var uid = ele.getAttribute('data-myuniqueid'); // For compatibility
var uid = ele.dataset.myuniqueid; // HTML5 way - does not work in old browsers
如果您需要更多解释来使用自定义数据属性,this可能会有所帮助。
- 编辑 -
我猜上述答案不足以解决您的问题。您可以将对象存储在数据属性中或尝试这样的事情 -
var ele = document.getElementById("link1");
ele.myuniqueid = "XXXXXX"
即使在源代码中,myuniqueid也不会对用户可见。
答案 2 :(得分:0)
您可以将其添加为标记属性 - 任何发送到浏览器的内容,用户都可以更改。如果用户想要更改id - 让他这样做。他也可以点击他想评论的文章,也可以这样做。
答案 3 :(得分:0)
您可以使用所有浏览器支持的HTML5中的sessionStorage。如果页面重新加载,它也可以保留
//for setting value
sessionStorage.LinkClicked= "4";
//to get the value
var temp = sessionStorage.LinkClicked;
以下是更多信息http://www.w3schools.com/html/html5_webstorage.asp
的链接希望,它可能对你有所帮助。祝你今天愉快。 :)
答案 4 :(得分:0)
用于在客户端存储数据。 如果你不挑剔跨浏览器的兼容性,你可以使用html5灵魂,如本地存储。
http://diveintohtml5.info/storage.html
如果您希望从元素中获取id并使用jQuery,则可以在事件处理程序中使用它
$().attr('id');