0

我在单击 Jquery cookie 中的 li 时保存“this”,但不是保存它的值,而是保存它的类型:

     $("ul > li").live('click', function () {
    $.cookie("liEvent", this, { expires: 100, path: "/" });
alert(this);
    }

'this'coming 的值是:[object HTMLLIElement] 而它应该作为 li 元素出现在 ul 中。

请帮忙。

4

3 回答 3

2

这是一种高级解释,但this它是一个指针,而不是一个实际值。如果您希望能够li在另一个函数或类似函数中访问您的元素,您只需传递其id属性或类似函数即可。

于 2013-09-24T06:40:17.927 回答
0

您不能真正将对象保存到 cookie - 因为递归过多并且结果值会很大。您将需要实现某种序列化,或存储可用于重新加载值的标识符。

我假设如果您使用 cookie,您打算刷新页面?在这种情况下,this关键字对你没有好处——因为对对象的引用会改变。

于 2013-09-24T06:40:06.897 回答
0

如果您需要将 li 的值存储到 cookie 中,您应该使用

      $(this).html()

使用 .live () 也有某些缺点……因此我建议您改用 .on() 。

     $("ul").on('click', "li", function () {..

与 .live() 相关的问题已在此处讨论jQuery 一贯使用 'live' 的缺点

于 2013-09-24T06:57:50.820 回答