Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 更换div(交换div)_Jquery_Html - Fatal编程技术网

Jquery 更换div(交换div)

Jquery 更换div(交换div),jquery,html,Jquery,Html,我在div中有一些输入。似乎是这样的: <div name="emailInput"> <input type="text" name="email_1" /></div> <div name="phoneInput"> <input type="text" name="phone_number_1" /></div> <div name="emailInput"> &l

我在div中有一些输入。似乎是这样的:

<div name="emailInput">
      <input type="text" name="email_1" /></div>
<div name="phoneInput">
      <input type="text" name="phone_number_1"   /></div>

<div name="emailInput">
      <input type="text" name="email_2"   /></div>
<div name="phoneInput">
      <input type="text" name="phone_number_2" /></div>

<div name="emailInput">
      <input type="text" name="email_3"  /></div>
<div name="phoneInput">
      <input type="text" name="phone_number_3" /></div>
此代码在每个emailInputs div之前交换整个phoneInputs div。我怎样才能一个接一个地交换div?(输入的计数未知)

而且


不行。

我还没试过这个。。但我认为应该是这样的:

$('div[name=^ emailInput]').each(obj, function(i, val) {
      obj.insertBefore('div[name^= phoneInput]');

    });

您需要单独操作它们,而不是整个选择器组

 $('div[name^="emailInput"]').each(function(){
      var previousPhoneInput = $(this).prev("div[name^='phoneInput']");
      $(this).remove().insertBefore(previousPhoneInput);
    });
试试这个:

$('input[name^="phone_number"]').each(function(){
   var $this = $(this);
   var $prev = $this.parent().prev()
   $prev.find('input').insertAfter($this);
   $this.appendTo($prev)    
})

您还可以更改div标记的位置

$('div[name="phoneInput"]').each(function(){
  var $this = $(this);
  $this.insertBefore($this.prev())   
})
 $('div[name^="emailInput"]').each(function(){
      var previousPhoneInput = $(this).prev("div[name^='phoneInput']");
      $(this).remove().insertBefore(previousPhoneInput);
    });
$('input[name^="phone_number"]').each(function(){
   var $this = $(this);
   var $prev = $this.parent().prev()
   $prev.find('input').insertAfter($this);
   $this.appendTo($prev)    
})
$('div[name="phoneInput"]').each(function(){
  var $this = $(this);
  $this.insertBefore($this.prev())   
})