这是我正在尝试做的基本前提:
假设你有一个简单的嵌套列表:
<ul>
<li>chevy</li>
<li>dodge</li>
<li id="trucks">ford
<ul>
<li>ranger</li>
<li>f150</li>
<li>f250</li>
</ul>
</li>
<li>kia</li>
</ul>
默认情况下,隐藏嵌套的福特菜单选项。单击“ford”链接后,当新页面打开时,带有“ranger”,“f150”和“f250”的嵌套div将打开并显示嵌套菜单。
我的想法是抓取点击事件<li>
上的id,将其作为字符串放入localStorage
,然后在新页面加载上,将url子字符串与本地存储字符串进行比较如果它们匹配,则放一个display: block
类,然后使菜单可见。
这是我到目前为止的jQuery,但是当我尝试比较两者时,我一直得到“不”说这些不一样。这是我现在挂断的一件事,似乎无法弄明白。
//get the id on the div and then store as a string
function storeId() {
$mtv('.features > ul > li > a').click(function() {
var name = $mtv (this).attr('id');
localStorage.setItem( 'name', JSON.stringify(name) );
});
};
//retrieve the storage item and compare to id clicked
function retrieveId() {
localStorage.getItem( 'name' );
var retrieve = localStorage.getItem('name');
var url = window.location.pathname;
var currentUrl = url.substring(url.lastIndexOf('/')+1).replace('.html', '');
if (currentUrl === retrieve ){
alert("yes");
}
else {
alert("no")
}
};
非常感谢任何帮助,
d
答案 0 :(得分:0)
使用var name = $mtv(this).attr('id');
您正试图获取链接ID
因为你想获得李的身份试试这个 -
var name = $mtv(this).closest('li').attr('id');