@Paul_Morte

Как изменить все экземпляры объекта (класса)?

Динамически создаю одинаковые экземпляры класса (это обязательно) и добавляю их в div ".out" через параметр созданного экземпляра.
А когда хочу удалить или изменить свойства всех когда-либо созданных экземпляров класса NewLay - не знаю как правильно написать синтаксис. Может через прототип как то? Свойства length у экзепляров нет :(

<div class="out" style="width:100%; height:100%;"></div>


<script>		
var lay;
function NewLay() {
this.html=$('<div class="it_is_new_lay" style="background:red">1111111111</div>');
}

lay = new NewLay();
$('.out').append(lay.html);

lay = new NewLay();
$('.out').append(lay.html);

lay = new NewLay();
$('.out').append(lay.html);

//// Как обратится ко всем созданным lay и удалить их код?
//// !!! через .it_is_new_lay - ненужно

alert(lay.length); /// undefined 
lay.html.remove(); // удалим последний элемент. 

</script>
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Динамически создаю одинаковые экземпляры класса (это обязательно) ... удалить или изменить свойства всех когда-либо созданных экземпляров класса NewLay - не знаю как правильно написать синтаксис. Может через прототип как то?
Если вы про объекты js, то вам нужно где-то сохранить ссылки на них. Если ссылок нет - объекты проживут не долго, их сборщик мусора удалит. А если он их удалил - изменять нечего.

Если вы хотите изменить HTML-элементы с классом it_is_new_lay, то как-то так:
$('.it_is_new_lay').each(function(){
  let elem = $(this)
  elem.html( 'hello ' + elem.html() )
})


lay = new NewLay();
lay = new NewLay();
lay = new NewLay();
вы каждый раз полностью перезаписываете содержимое переменной, и у вас там останется только самое последнее значение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы