2015-07-03 57 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