2017-08-10 126 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]

相关问题