Try*_*ace 3 javascript jquery object
我列出id了页面上的每个DOM元素:
var listy = $("*[id]").map(function(){
return this.id;
}).get().join(',');
Run Code Online (Sandbox Code Playgroud)
因此,listy的示例输出将是:
"home,links,stuff,things"
Run Code Online (Sandbox Code Playgroud)
现在我想的listy转换Array成Object,如:
function toObject(arr) {
var rv = {};
for (var i = 0; i < arr.length; ++i)
if (arr[i] !== undefined) rv[i] = arr[i];
return rv;
}
Run Code Online (Sandbox Code Playgroud)
但是那会把它变成一个Object像:
0: "h", 1: "o", 2: "m", etc...
Run Code Online (Sandbox Code Playgroud)
我明显想要的是:
0: "home", 1: "links, 2: "stuff", etc..
Run Code Online (Sandbox Code Playgroud)
我哪里出错了,我得到了toObject():将数组转换为对象
这让我想到了一个类似但不同的问题:
你listy是一个字符串,而不是一个数组.将您的第一个代码块更改为:
listy = $("*[id]").map(function(){
return this.id;
}).get();
Run Code Online (Sandbox Code Playgroud)
至于创建索引整个文档的对象:出于什么目的?当你可以直接解析DOM时,自己做这件事几乎没有什么好处 - 特别是因为jQuery让它变得如此简单.DOMJSONTHING.body.div.h1您可以调用$('document > body > div > h1').attr('id')并获得相同的结果,而不是调用以获取值"home" .