2017-08-10 125 views
2

正如標題所說,我可以克隆兩個元素並將它們存儲在一個變量中,而不是創建單獨的變量。使用&&獲得兩個元素試過,但沒有奏效克隆兩個元素並將它們存儲在一個變量中

var menu = $('a[href$="/items"]').clone() && $('a[href$="/items"]').next().clone(); 
 

 
$('.footer .footer-menu').append(menu);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
     <a href="aim/items">Item </a> 
 
     <ul> 
 
      <li>item one</li> 
 
     </ul> 
 
    </li> 
 
</ul> 
 

 
<div class="footer"> 
 
    this is a footer 
 
    <div class="footer-menu"> 
 
    
 
    </div> 
 
</div>

+0

您可以使用'.add()'方法,或者每次爲每個克隆調用'.append()'兩次,然後根本不需要該變量。或者先選擇兩個元素,然後再調用'.clone()'一次。 – nnnnnn

+0

你最關心的是存儲一個變量還是你想只使用'append'一次? –

回答

1

在這裏你可以用array解決方案https://jsfiddle.net/wrdp548d/

var menu = []; 
 
menu.push($('a[href$="/items"]').clone()); 
 
menu.push($('a[href$="/items"]').next().clone()); 
 

 
$('.footer .footer-menu').append(menu);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
     <a href="aim/items">Item </a> 
 
     <ul> 
 
      <li>item one</li> 
 
     </ul> 
 
    </li> 
 
</ul> 
 

 
<div class="footer"> 
 
    this is a footer 
 
    <div class="footer-menu"> 
 
    
 
    </div> 
 
</div>

另一種方式

var menu = []; 
 
menu.push($('a[href$="/items"]').clone()); 
 
menu.push($('a[href$="/items"]').next().clone()); 
 

 

 
$.each(menu, function(i){ 
 
\t $('.footer .footer-menu').append(menu[i]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
     <a href="aim/items">Item </a> 
 
     <ul> 
 
      <li>item one</li> 
 
     </ul> 
 
    </li> 
 
</ul> 
 

 
<div class="footer"> 
 
    this is a footer 
 
    <div class="footer-menu"> 
 
    
 
    </div> 
 
</div>

在這裏你去目標的解決方案https://jsfiddle.net/wrdp548d/1/

var menu = { 
 
\t clone1: $('a[href$="/items"]').clone(), 
 
    clone2: $('a[href$="/items"]').next().clone() 
 
}; 
 

 

 
for(var key in menu){ 
 
    $('.footer .footer-menu').append(menu[key]); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
     <a href="aim/items">Item </a> 
 
     <ul> 
 
      <li>item one</li> 
 
     </ul> 
 
    </li> 
 
</ul> 
 

 
<div class="footer"> 
 
    this is a footer 
 
    <div class="footer-menu"> 
 
    
 
    </div> 
 
</div>

希望這會幫助你。

+0

*「在這裏你使用JSON解決方案」* - 這不是JSON,它是一個對象。 – nnnnnn

+0

Ya ... JSON對象解決方案... – Shiladitya

+0

不,只是一個對象。 [沒有這樣的事情作爲「JSON對象」。](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) – nnnnnn

1

一個簡單的變量只能容納一個值。如果您需要保存多個數據或者使用數組或對象。

使用數組:

var clone1 = $('a[href$="/items"]').clone(); 
var clone2 = $('a[href$="/items"]').next().clone(); 

var menu = [clone1, clone2]; 

或對象:

var clone1 = $('a[href$="/items"]').clone(); 
var clone2 = $('a[href$="/items"]').next().clone(); 

var menu = {'clone1': clone1, 'clone2': clone2}; 

然後你將不得不通過循環直通,或直接通過數組索引menu[0]或對象屬性訪問它訪問值menu.clone1menu[clone1]

相關問題