Замена элементов
С помощью этих функций можно заменять элементы страницы новыми элементами или уже существующими. Имеется два варианта использования функций:
Примеры
Допустим страница содержит следующий текст:
<ul class="list l1"> <li class="item i1"> Высоко </li> <li class="item i2"> Быстро </li> <li class="item i3"> Сильно </li> </ul> <ul class="list l2"> <li class="item i1"> Выше </li> <li class="item i2"> Быстрее </li> <li class="item i3"> Сильнее </li> </ul>
следующие два выражения будут равнозначны
$(".i1").replaceWith("<li class='item'>Тест</li>"); $("<li class='item'>Тест</li>").replaceAll($(".i1"));
в обоих случаях элемент списка с текстом "Тест" заменит элементы с классом i1. В результате, текст нашей страницы станет следующим:
<ul class="list l1"> <li class='item'>Тест</li> <li class="item i2"> Быстро </li> <li class="item i3"> Сильно </li> </ul> <ul class="list l2"> <li class='item'>Тест</li> <li class="item i2"> Быстрее </li> <li class="item i3"> Сильнее </li> </ul>
Помимо html-текста, можно заменять одни элементы страницы другими. При этом, вставляемые элементы будут не скопированы, а перемещены. Например следующий код
$(".l2 i2").replaceWith($(".l1 i1"));
изменит первоначальную страницу следующим образом:
<ul class="list l1"> <li class="item i2"> Быстро </li> <li class="item i3"> Сильно </li> </ul> <ul class="list l2"> <li class="item i1"> Выше </li> <li class="item i1"> Высоко </li> <li class="item i3"> Сильнее </li> </ul>
Рассмотрим пример с использованием пользовательской функции. Добавим драматичности элементам из второго списка:
$(".l2 .item").replaceWith(function(){ return ' <li class="item" > '+$(this).text()+', я кому сказал! </li>'; });
в итоге, текст первоначальной страницы станет следующим:
<ul class="list l1"> <li class="item i1"> Высоко </li> <li class="item i2"> Быстро </li> <li class="item i3"> Сильно </li> </ul> <ul class="list l2"> <li class="item"> Выше, я кому сказал! </li> <li class="item"> Быстрее, я кому сказал! </li> <li class="item"> Сильнее, я кому сказал! </li> </ul>