使用Javascript或jQuery将Array-String转换为Object

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转换ArrayObject,如:

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():将数组转换为对象

这让我想到了一个类似但不同的问题:

将页面元素索引到JSON对象?或者每次jQuery选择它?

Bla*_*ger 5

listy是一个字符串,而不是一个数组.将您的第一个代码块更改为:

 listy = $("*[id]").map(function(){
    return this.id;
 }).get();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/P7YvU/

至于创建索引整个文档的对象:出于什么目的?当你可以直接解析DOM时,自己做这件事几乎没有什么好处 - 特别是因为jQuery让它变得如此简单.DOMJSONTHING.body.div.h1您可以调用$('document > body > div > h1').attr('id')并获得相同的结果,而不是调用以获取值"home" .