2015-07-03 58 views
-4

你好我相对新到JQuery ...更多用于PHP 它只是非常简单,我认为但我太笨了,如果我诚实的JS打破了我的想法....(在OOP Ive以学习太多...)Jquery用DOM创建新对象

所以我已经发现,没有像PHP中的数组。

好吧,让我们开始。

我的HTML看起来像这样:

<div id="content"> 
    <ul id="ul_1"></ul> 
    <ul id="ul_2"></ul> 
    <ul id="ul_3"></ul> 
</div> 

,现在我想反正生成了这一点,那

controller = { 
    "#ul_1": 1, 
    "#ul_2": 1, 
    "#ul_3": 1 
}; 

所以更准确地说,在此刻的硬编码,如代码示例在这条线上方。 但我希望它自动生成HTML或更好的DOM。

我已经尝试过.map,.find.each ......但是我太禁用了。

我总是喜欢它立即它,所以我的意思是没有迭代与.each如果这是可能的。我想也许有可能从$.('#content')对象中创建一个新对象,但以我需要的样式创建。

非常感谢您Rycochet

继承人解决我的情况

var controller = {}; 
$("#content > ul").each(function (i, el) { 
    controller['#' + $(el).attr('id')] = 1; 
}); 

有另一种解决方案,也?与.map一样,还是最好,最快,最简单的方法呢?

+1

我不明白你的对象中的键和值如何与你给的HTML相关? –

+0

在你的HTML中没有'#product','#staff'或'#isn'这样的ID ... – Justinas

+0

没错,真的!对不起,我只改变了一半....我修复它 – Tuppabox

回答

0

完全猜测在这里 - 但如果你的数据是这样的 -

<div id="content"> 
    <ul id="ul_1"> 
     <li>isn</li> 
     <li>staff</li> 
     <li>product</li> 
    </ul> 
</div> 

然后你就可以做出这样的对象 -

var controller = {}; 
$("#ul_1>li").each(function(i, el) { 
    controller[$(el).text()] = 1; 
}); 

如上评论说 - 你没有尽管提供了足够多的细节。

+0

非常感谢!现在我用你的方法得到了它! – Tuppabox