• Как сравнить 2 строки посимвольно?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    // содержит ли подстроку
    console.log('Москва'.includes('Мо')) // true
    console.log('Москва'.includes('Ро')) // false
    // начинаетсяы ли с подстроки
    console.log('Москва'.startsWith('Мо')) // true
    console.log('Москва'.startsWith('Ро')) // false
    Ответ написан
    Комментировать
  • Как сравнить 2 строки посимвольно?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Комментировать
  • Как задать элементу innerHTML корректно?

    BRAGA96
    @BRAGA96
    По поводу шаблонизатора, можете написать очень простой свой.
    var html = `
    <div class="single-question">
    	<span class="{{class}}">{{text}}</span>	
    </div>
    `;
    
    var result = tag(html, {
    	class: 'test',
    	text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque, magni.'
    });
    
    function tag(input, data) {
    	for (var tag in data) {
    		input = input.replace(new RegExp('\\{{'+ tag +'\\}}', 'gi'), data[tag]);
    	}
    	return input;
    }


    Результат:
    <div class="single-question">
    	<span class="test">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque, magni.</span>	
    </div>
    Ответ написан
    Комментировать
  • Как удалить дальнего родителя при клике на потомке?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Кто "дальний родитель", и кто "потомок":

    const ancestorSelector = 'селектор дальнего родителя';
    const descendantSelector = 'селектор потомка';

    Если клики по вложенным элементам "потомка" учитывать не надо:

    document.addEventListener('click', ({ target: t }) => {
      if (t.matches(descendantSelector)) {
        const ancestor = t.closest(ancestorSelector);
        if (ancestor) {
          ancestor.remove();
        }
      }
    });

    Если интересуют все клики внутри "потомка", в том числе и по его потомкам:

    document.addEventListener('click', e => {
      const descendant = e.target.closest(descendantSelector);
      if (descendant) {
        const ancestor = descendant.closest(ancestorSelector);
        if (ancestor) {
          ancestor.remove();
        }
      }
    });

    UPD. Наконец-то дождались:

    document.addEventListener('click', ({ target: t }) =>
      t.matches(descendantSelector) &&
      t.closest(ancestorSelector)?.remove()
    );

    document.addEventListener('click', e => {
      e.target.closest(descendantSelector)?.closest(ancestorSelector)?.remove();
    });
    Ответ написан
    Комментировать