使用jquery在pageload上突出显示jquerytreeview中的默认节点

使用jquery在pageload上突出显示jquerytreeview中的默认节点,jquery,treeview,Jquery,Treeview,我正在使用jquery.treeview.js。 我需要在页面加载时突出显示节点背景色。 点击我可以突出显示背景颜色和字体等 $("a").css("backgroundColor", ""); $("a").css("font-weight", ""); $(this).css("backgroundColor", "grey"); $(this).css("font-weight", "bold"); $.cookie("url", $(this));

我正在使用jquery.treeview.js。 我需要在页面加载时突出显示节点背景色。 点击我可以突出显示背景颜色和字体等

    $("a").css("backgroundColor", "");
    $("a").css("font-weight", "");
    $(this).css("backgroundColor", "grey");
    $(this).css("font-weight", "bold");
    $.cookie("url", $(this));
现在,我将这个对象保存在cookie中,并且能够读取相同的内容,但是无法应用css,因为它说没有这样的属性

    $.cookie("url").css("backgroundColor", "grey");
为什么我没有从cookie中获取jQuery对象?

如果您正在使用插件,请尝试设置
$.cookie.json=true

$.cookie.json = true;
...
$.cookie("url", $(this));
...
$.cookie("url").css("backgroundColor", "grey");

如果这不起作用,您可以阅读有关使用JavaScript进行对象反序列化/序列化的内容。如果确实需要对象序列化,请小心,如果在序列化前后不需要确切的对象,那么dgvid的答案是更好的方法。只有使用新变量/函数/侦听器/扩展对象时,才会出现这种情况

您的代码不起作用,因为cookie只包含字符串,而不包含其他内容。您的节点(从技术上讲是jQuery对象的实例)不是字符串。这篇文章对如何做你想做的事情有一个很好的概述

然而,对于您的特定需求,您可能可以做一些比那篇文章中描述的要简单得多的事情。如果您确定要高亮显示的节点将始终具有非空id,则可以将id(已经是字符串)保存在cookie中。当您从cookie返回id时,可以将其用作选择器,以获取所需的对象。例如:

// Works only if `this` has id attribute set:
$.cookie("url", this.id);


// Later...
var id = $.cookie("url");
$("#" + id).css("backgroundColor", "grey");

我甚至不知道克劳斯·哈特尔的插件能做到这一点。好提示!我没有测试这种方法,但我添加了一个指向JavaScript对象反序列化的链接。如果我的方法不起作用,链接中的方法将起作用:)我可以得到的对象,但它包含节点,您希望得到什么?如果您在JS Bin或JSFiddle.alert(this.id)return empty上创建一个工作示例,我们可能会帮助您。我想您应该尝试da_re的方法,然后.alert(this.id)return empty alert($(this.id))返回未定义的