我在Firefox中使用Firebug。我有一个巨大的JavaScript对象,它包含许多其他JavaScript对象,而这些对象又可以保存对象。我想找到一个可以在任何一个对象中的唯一值。但是,Firebug的搜索字段仅适用于 DOM 面板内可见的文本。在JavaScript对象列表中,您可以单击旁边的加号将其展开。但是,如果未展开对象,则搜索字段似乎不可见。
如何搜索当前未在Firebug DOM 面板中显示的项目?
答案 0 :(得分:1)
你可以做些什么来规避这个问题,就是编写自己的搜索功能,它会返回你期望的结果。一个简单的例子是以下代码:
function searchValue(obj, value) {
for (var prop in obj) {
if (typeof obj[prop] === "object") {
var result = searchValue(obj[prop], value);
if (result !== '')
return prop + "." + result;
}
if (obj[prop] === value)
return prop + "." + obj[prop];
}
return '';
}
此函数对对象进行简单搜索,并返回保存第一次出现的值的属性的路径。例如。在定义为searchValue(test, "bar")
的对象上调用test = {a: "foo", b: {c: {d: "bar"}}}
会返回"b.c.d"
。 请注意,此函数不会处理递归。