У меня есть тег Div и внутри есть 3 элемента (HTML-теги).
первый тег: набор полей,
второй тег: div с исправлением положения и имеет много внутреннего тега
третий тег: набор полей.
Мне нужно после проверки условий в событии готовности документа, функции вызова для обмена только 2 набора полей (например, этот код) и второго элемента (div).
обратите внимание на этот образец:
<div id='InformationDiv'>
<fieldset id='fieldset1'>
...
</fieldset>
<div id='fixDiv'>
...
...
</div>
<fieldset id='fieldset2'>
...
</fieldset>
</div>
Смотрите здесь http://jsfiddle.net/NnByd/
var swapItems= $("#InformationDiv fieldset");
$("#InformationDiv").prepend(swapItems.eq(1))
$("#InformationDiv").append(swapItems.eq(0))
Это было так просто:
$("#fieldset1").detach().insertAfter("#fixDiv");
$("#fieldset2").detach().insertBefore("#fixDiv");
JS: -
jQuery(function($){
var obj1=$("#fixDiv").prev();
var obj2=$("#fixDiv").next();
$("#fixDiv").before(obj2);
$("#fixDiv").after(obj1);
});
HTML: -
<div id='InformationDiv'>
<fieldset id='fieldset1'>
fieldset1
</fieldset>
<div id='fixDiv'>
fixDiv
</div>
<fieldset id='fieldset2'>
fieldset2
</fieldset>
</div>
Без jQuery:
function replace() {
var fieldsets = document.getElementsByTagName('fieldset');
var fieldset;
var parent = fieldsets[0].parentNode;
// Create some dummy replacement material
var newStuff = [];
var p = document.createElement('p');
p.innerHTML = 'This is new';
newStuff.push(p);
p = document.createElement('p');
p.innerHTML = 'This is also new';
newStuff.push(p);
// Replace
for (var ii=fieldsets.length;ii>0;) {
ii--;
fieldset = fieldsets[ii];
parent.replaceChild(newStuff[ii], fieldset);
}
}