2016-03-11 76 views
-1

我的代碼有這條線。jquery對象創建的新方法

var variableName = $("<div class='class-name'></div>"); 
console.log(variableName); -> Object[div.class-name] 

我想知道這是否指的是jQuery和我們如何能夠在物體像

Object[div.class-name, div.class-name] 

增加移動值的實際代碼是:

var overlapCollector; 
    $.each(region, function(i, r){ 
     var overlapper = $("<div class='markup-overlapper'></div>").appendTo(markupCanvas); 
     overlapper.css({ 
      "position": "absolute", 
      "left": r.x1, 
      "top": r.y1, 
      "width": r.x2-r.x1, 
      "height": r.y2-r.y1 
     }).toggleClass("exclude", ex); 
     overlapCollector = overlapper.add(overlapper); 
     console.log(overlapCollector); 
    }); 

請幫助

謝謝

+0

您可以使用['。新增( )'](https://api.jquery.com/add/)。 –

+0

嘗試過但失敗。 :( –

+0

你需要先把它放在一個變量中,然後指定它。查看我的回答。 –

回答

0

您可以使用.add()創建一個新的jQuery對象,其元素添加到匹配元素集合中。它返回這組匹配作爲 jQuery對象。

所以你的代碼可能是這樣的:

var variableName = $("<div class='class-name'></div>"); 
 
variableName = variableName.add($("<span class='new-class'></span>")); 
 
console.log(variableName); // -> Object[div.class-name, span.new-class]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

謝謝@Praveen –

2

你必須使用。新增(),但你也必須要記住,這個功能不附加到當前對象,但返回一個包含你想要的新對象。

適當的行爲將通過使用保證:

var variableName = $("<div class='class-name'></div>"); 
variableName = variableName.add($("<div class='another-div'></div>")); 
console.log(variableName); -> Object[div.class-name, div.another-div] 

編輯:由於下面的評論被問及循環:

var variableName = $("<div class='class-name'></div>"); 
for(...){ 
    variableName = variableName.add($("<div class='another-div'></div>")); 
} 
console.log(variableName); -> Object[div.class-name, div.another-div, ..., div.another-div] 
+0

謝謝@Corvus,我認爲這不適用於循環的權利? –

+0

它是的,只要variableName超出循環的範圍,那麼你只是在每次迭代中進行追加和替換操作。 –

+0

下面是我想實現的實際代碼: –

0

只要做到這一點

$("<div class='class-name'></div><div class='class-name'></div>")

或這

$("<div class='class-name'></div>").add("<div class='class-name'></div>")

+1

謝謝@Ammar Hasan –

0

不確定「在該對象中創建move(more?)值」是什麼意思。

如果你指的是屬性,你可以這樣做:

var x = $('<div/>', {"class":"class-name", "id":"someId"}); 

如果你想另一個對象添加到當前集合,你需要使用。新增()(如前所述):

var x = $('<div/>'); 
x.add('div'); 

在這裏,你將最終在你的「收藏」2個div。此外,jQuery對象集合將在順序返回的元素出現在DOM - 而不是你可能已經添加到集合的順序....

HTH

+0

謝謝@Stuart。 –

+0

很高興有理想的幫助 - 你可以隨時打勾正確的答案和/或upvote :) – Stuart

+0

@Stuart Upvote?真的嗎? :) –