2013-10-26 106 views
1

我有一個元素數組,我希望把它放入一個jQuery對象。 jquery.add()似乎並沒有將元素添加到我的jquery對象中。我有控制檯日誌顯示,我添加的東西確實是html元素,但他們仍然沒有添加在 我做錯了什麼?jquery .add()不添加html元素

我的代碼:

console.log('iterating') 
console.log(content) 
//add the content into the jquery item, and then we can load it into the qtip 
_.each(additionalContent, function(value, element, list){ 
console.log('adding') 
console.log(value) 
console.log(content.length) 
content.add(value) //trying content.add($(value)) gives the same result/output 
console.log(content.length) 
}) 

console.log('asdf') 
console.log(content.length) 
console.log(content) 

====================== 打印以下內容:

iterating 
[p.nonVendor unselectable, selector: "", context: undefined, jquery: "1.9.1", constructor: function, init: function…] 
adding 
<button class type=​"button" data-loading-text=​"OK" style=​"text-align:​ center;​ font-style:​ normal;​ font-variant:​ normal;​ font-weight:​ normal;​ font-size:​ 13px;​ line-height:​ normal;​ font-family:​ arial;​ color:​ rgb(255, 255, 255)​;​ background-color:​ rgb(0, 0, 255)​;​ z-index:​ 2;​ display:​ inline;​ left:​ auto;​ top:​ auto;​ width:​ 35.77777862548828px;​ height:​ 17.777777671813965px;​">​OK​</button>​ 
1 
1 
adding 
<button class type=​"button" data-loading-text=​"Cancel" style=​"text-align:​ center;​ font-style:​ normal;​ font-variant:​ normal;​ font-weight:​ normal;​ font-size:​ 13px;​ line-height:​ normal;​ font-family:​ arial;​ color:​ rgb(255, 255, 255)​;​ background-color:​ rgb(0, 0, 255)​;​ z-index:​ 2;​ display:​ inline;​ left:​ auto;​ top:​ auto;​ width:​ 35.77777862548828px;​ height:​ 17.777777671813965px;​">​Cancel​</button>​ 
1 
1 
asdf 
1 
[p.nonVendor unselectable, selector: "", context: undefined, jquery: "1.9.1", constructor: function, init: function…] 
+0

什麼是「內容」? *編輯*哦,我看到 – Pointy

+0

究竟在哪裏使用'jquery.add()'添加元素? – dreamweiver

+0

內容變量是一個jQuery對象(第2行代碼) – user2099089

回答

3

。新增()不改變原變種,所以你需要將結果分配回「內容」,如下所示:

content = content.add($(value)); 
0

創建一個包含JavaScript數組無論是在contentadditionalContent對象下面的代碼將工作:

elements = []; 
content.each(function(index, value) { 
    elements.push(value); 
}); 
additionalContent.each(function(index, value) { 
    elements.push(value); 
}); 

幾個要點:

  • 你的每個函數的第一個參數將被裝入一個索引(類似於使用的循環:for(int index = 0; index < content.length;指數++),第二個參數是元素
  • jQuery的方法。新增用於處理選擇,而不是對象的集合,沒有在你的代碼需要

elements集合可以再順便相當的行爲用於物體 - 這是你需要的嗎?

編輯 - 來串聯jQuery選擇:

爲wdosanjos指出,下面的工作 - 沒有.each要求:

content = content.add(additionalContent); 

的CSS類香腸添加到所有元素中兩個選擇器:

content.add(additionalContent).addClass('sausage');