Поменять содержимое элементов по одному ID
Не могу понять, как сделать следующее: нужно поменять содержимое двух контейнеров между собой, чтобы получилось из 1 2 3 4 → 2 1 4 3. Буду благодарен помощи
<div class="start" id="firstID"> <p>One</p> </div> <div class="end" id="firstID"> <p>Two</p> </div> <div class="start" id="secondID"> <p>Three</p> </div> <div class="end" id="secondID"> <p>Four</p> </div> Когда пишу скрипт, то получается поменять между собой только первые два элемента:
var start = $('.start').html();
var end = $('.end').html();
$('.start').html(end);
$('.end').html(start);
|
DrewSherwood,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function() {
var end = $(".end");
$(".start").html(function(index, html) {
var el = end.eq(index);
$(this).html(el.html());
el.html(html)
});
});
</script>
</head>
<body>
<div class="start" id="firstID">
<p>One</p>
</div>
<div class="end" id="firstID">
<p>Two</p>
</div>
<div class="start" id="secondID">
<p>Three</p>
</div>
<div class="end" id="secondID">
<p>Four</p>
</div>
</body>
</html>
|
Большое спасибо!
|
Если вам нужно именно поменять местами, то можно так.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(function() {
var jQueryEnd = $(".end");
$(".start").before(function(index) {
var jQueryElement = jQueryEnd.eq(index);
$(this).removeClass("start").addClass("end");
jQueryElement.removeClass("end").addClass("start");
return jQueryElement;
});
});
</script>
<div class="start" data-id="firstID">
<p>One</p>
</div>
<div class="end" data-id="firstID">
<p>Two</p>
</div>
<div class="start" data-id="secondID">
<p>Three</p>
</div>
<div class="end" data-id="secondID">
<p>Four</p>
</div>
</body>
</html>
P. S. Два одинаковых id бессмысленны, может data-id? |
| Часовой пояс GMT +3, время: 00:40. |