0

这是我正在尝试做的基本前提:

假设您有一个简单的嵌套列表:

<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

4

1 回答 1

0

var name = $mtv(this).attr('id');您一起尝试获取链接的ID

当你想得到 li 的 id试试这个 -

var name = $mtv(this).closest('li').attr('id');
于 2013-05-17T15:57:57.390 回答