D
D
damarkuzz2020-04-17 11:23:34
JavaScript
damarkuzz, 2020-04-17 11:23:34

How can I make the code apply to all elements on the page?

How to make the script apply not only to the first classes in the DOM structure?

<p class="tmnl-p">Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст</p>
<a class="show-text">Кляц!</a>

<p class="tmnl-p">Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст</p>
<a class="show-text">Кляц!</a>

<p class="tmnl-p">Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст Какой-то текст</p>
<a class="show-text">Кляц!</a>

.hide-before {
  height: unset !important;
}
.tmnl-p {
  height: 35px;
  overflow: hidden;
}
.show-text {
background: yellow;
display: block;
width: 30%;
text-align: center;
cursor: pointer;
}
jQuery(document).ready(function($) {
  var showText = document.querySelector('.show-text');
  if (showText) {
  showText.addEventListener('click', () => {
  var seoText = document.querySelector('.tmnl-p');
  if (seoText) {
  seoText.classList.toggle('hide-before'); 
      }
    }); 
  }
  });

Answer the question

In order to leave comments, you need to log in

1 answer(s)
H
hzzzzl, 2020-04-17
@damarkuzz

for (const showText of document.querySelectorAll('.show-text')) {
    showText.addEventListener('click', () => {
      var seoText = document.querySelector('.tmnl-p');   
      if (seoText) {
        seoText.classList.toggle('hide-before'); 
      }
    }); 
}

if I understand what the result should be, then it should be put in a common block
<div class="blah">
  <p class="tmnl-p">Какой-то текст </p>
  <a class="show-text">Кляц!</a>   <-- почему не button? -->
</div>


for (const showText of document.querySelectorAll('.show-text')) {
    showText.addEventListener('click', () => {
      var seoText = showText.parentNode.querySelector('.tmnl-p');    // тот который в одном блоке с кнопкой
      if (seoText) {
        seoText.classList.toggle('hide-before'); 
      }
    }); 
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question