Не туда, куда надо добавляется класс

276
08 ноября 2017, 01:55

Здравствуйте.

Я еще учу jQuery. Сегодня столкнулся с проблемой, что не туда, куда надо добавляется класс. Нужно, чтобы новый класс был у <p>, а вышло у <body>.

$(function () { 
        var elem = $('body'); 
        elem 
          .append('<p>Some text</p>')) 
            .addClass('new'); 
});
.new { 
  color: red; 
}
<body> 
 
</body>

Заранее спасибо.

Answer 1

//первый вариант: 
$(function() { 
  var elem = $('body'); 
  elem.append('<p class="new">Some text</p>'); 
}); 
//второй вариант 
$(function() { 
  var elem = $('body'); 
  elem.append('<p>Some text</p>'); 
  $('p').addClass('new'); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

Answer 2

Цепочные вызовы jQuery основаны на том, что многие методы объекта-обертки возвращают себя. Таким образом, Вам надо добавлять элемент, используя метод правильного объекта - того, которому Вы хотите следующим вызовом добавить класс:

var elem = $('body');
$('<p></p>').appendTo(elem).addClass('new');
Answer 3

.prependTo( "body" ); вам в помощь или .appendTo("body");

$(function() { 
 
  $('<p></p>') 
    .html('Some text') 
    .addClass('new') 
    .prependTo("body"); 
 
});
.new { 
  color: red; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<body> 
 
</body>

READ ALSO
как убрать outline и focuse у селект html

как убрать outline и focuse у селект html

Как убрать фокус на десктопах при клике?

310
Реализовать зум на интерактивной карте

Реализовать зум на интерактивной карте

Здравствуйте! Необходимо реализовать зум на интерактивной картеВыполнена интерактивная карта в виде div'a, значки на карте выводятся при помощи

265