Как получить только первый элемент (без display: none)?
в данном случае
<p class="error" style>текст 3</p>
<p class="error" style="display: none">текст 1</p>
<p class="error" style="display: none">текст 2</p>
<p class="error" style>текст 3</p>
<p class="error" style>текст 4</p>
<p class="error" style="display: none">текст 5</p>
<p class="error" style>текст 6</p>
<p class="error" style="display: none">текст 7</p>
<p class="error" style="display: none">текст 8</p>
Ответы (2 шт):
Автор решения: Grundy
→ Ссылка
jQuery предоставляет селектор :visible позволяющий выбрать видимые элементы.
Видимыми элементами считаются элементы, занимающие какое-либо пространство в документе.
Из полученной выборки достаточно получить первый элемент:
console.log($('.error:visible').eq(0).text());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="error" style="display: none">текст 1</p>
<p class="error" style="display: none">текст 2</p>
<p class="error" style>текст 3</p>
<p class="error" style>текст 4</p>
<p class="error" style="display: none">текст 5</p>
<p class="error" style>текст 6</p>
<p class="error" style="display: none">текст 7</p>
<p class="error" style="display: none">текст 8</p>
Автор решения: WalkMess
→ Ссылка
const getElement = (position) => {
const errorsNode = document.querySelectorAll('.error');
const errors = [...errorsNode];
const filterElements = errors.filter(element => element.style.display === '');
return filterElements[position];
}
console.log(getElement(0));
<body>
<p class="error" style="display: none">текст 1</p>
<p class="error" style="display: none">текст 2</p>
<p class="error" style>текст 3</p>
<p class="error" style>текст 4</p>
<p class="error" style="display: none">текст 5</p>
<p class="error" style>текст 6</p>
<p class="error" style="display: none">текст 7</p>
<p class="error" style="display: none">текст 8</p>
<script src="script.js"></script>
</body>