Jquery 更换div(交换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 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())
})