克隆两个元素并将它们存储在一个变量

时间:2017-08-10 02:53:35

标签: javascript jquery html

正如标题所说,有一种方法可以克隆两个元素并将它们存储在一个变量中,而不是创建一个单独的变量。尝试使用&&来获取这两个元素,但没有工作



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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分: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.clone1 menu[clone1]

直接访问它来访问它们

答案 1 :(得分: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){
	$('.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 = {
	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>

希望这会对你有所帮助。