Сведения о вопросе

MAT

18:46, 3rd August, 2020

Теги

jQuery    

jQuery: методы $.add() и $.append() работают некорректно?

Просмотров: 332   Ответов: 1

написал небольшой примерчик. он должен добавлять по клику на в него элемент . познакомился с jQuery недавно и работа конкретно этих функций $.add() и $.append() вызывает недоумение. вот вкратце код:
<style>
.div {
	background-color: yellow;
	width: 50pt;
	height: 50pt;
}
</style>

<script type="text/javascript">
	$("p #add").click(function() {
		$(this).add("div").css("class", "div");
	});
	$("p #append").click(function() {
		$(this).append("<div class='div'></div>");
	});
</script>

<p id="add">click me and i'll try to show you a div with $.add()</p>
<p id="append">click me and i'll try to show you a div with $.append()</p>

ссылки на API:
$.append()
$.add()

у меня при клике на в обоих случаях ничего не происходит. wtf?

полностью скачать и открыть test.html в браузере можно отсюда

UPD: код jQuery теперь:
$(document).ready(function(){
	$("p#add").click(function() {
		$(this).add("div").css("class", "div");
	});
	$("p#append").click(function() {
		$(this).append("<div class='div'></div>");
	});
});

$.append() заработал, $.add() — по прежнему нет



  Сведения об ответе

park

21:06, 1st October, 2020

Как я понимаю, Вы желаете отыскать такой аналог вызова
$(function(){
   $("p#append").click(function(){
      $(this).append("<div class='div'></div>");
   });
});
который создавал бы элемент по имени и затем снабжал его классом, а потом присоединял бы к указанному.

Тогда это вот что:
$(function(){
   $("p#append").click(function(){
      $('<div />').addClass('div').appendTo($(this));
   });
});

Метод .add() не сгодится потому, что он используется для пополнения $-наборов. Например, его можно использовать, чтобы добавить два div-элемента вместо одного:
$(function(){
   $("p#append").click(function(){
      $('<div />').add('<div />').addClass('div').appendTo($(this));
   });
});

Метод .css() не сгодится потому, что он используется для наложения CSS-свойств. Например, вот этот вызов:
$(function(){
   $("p#append").css('color', 'red');
});
налагает свойство
{color: 'red';}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться