javascript remove - jQuery для циклических элементов с одним классом




attribute add (13)

В JavaScript ES6 с использованием агента распространения ...

[...document.querySelectorAll('.testimonial')].forEach( el => {
    el.style.color = 'red';
});

над массивом, подобным массиву, данным Element.querySelectorAll()

[...document.querySelectorAll('.testimonial')].forEach( el => {
  el.style.color = 'red';
  const stuff = `Element ${el.tagName} with ID #${el.id} says: ${el.textContent}`; 
  console.log( stuff );
});
<p class="testimonial" id="1">This is some text</p>

<div class="testimonial" id="2">Lorem ipsum</div>

Я имею нагрузку divs с характеристикой класса, и я хочу использовать jquery для их прокрутки для проверки каждого div, если конкретное условие истинно. Если это правда, он должен выполнить действие.

Кто-нибудь знает, как я это сделаю?


Функция jQuery .eq () может помочь вам пройти через элементы с индексированным подходом.

var testimonialElements = $(".testimonial");
for(var i=0; i<testimonialElements.length; i++){
    var element = testimonialElements.eq(i);
    //do something with element
}

Используйте каждый: « i » - это позиция в массиве, obj - объект DOM, который вы выполняете итерацию (к нему можно получить доступ через оболочку jQuery $(this) ).

$('.testimonial').each(function(i, obj) {
    //test
});

Для получения дополнительной информации обратитесь к справочнику api .


Попробуйте этот пример

Html

<div class="testimonial" data-index="1">
    Testimonial 1
</div>
<div class="testimonial" data-index="2">
    Testimonial 2
</div>
<div class="testimonial" data-index="3">
    Testimonial 3
</div>
<div class="testimonial" data-index="4">
    Testimonial 4
</div>
<div class="testimonial" data-index="5">
    Testimonial 5
</div>

Когда мы хотим получить доступ к этим divs с data-index больше 2 нам нужен этот jquery.

$('div[class="testimonial"]').each(function(index,item){
    if(parseInt($(item).data('index'))>2){
        $(item).html('Testimonial '+(index+1)+' by each loop');
    }
});

Рабочий пример скрипки


Это довольно просто сделать без jQuery в эти дни.

Без jQuery:

Просто выберите элементы и используйте метод .forEach() для их перебора:

var testimonials = document.querySelectorAll('.testimonial');
Array.prototype.forEach.call(testimonials, function(elements, index) {
    // conditional here.. access elements
});

Возможно, мне не хватает части вопроса, но я считаю, что вы можете просто сделать это:

$('.testimonial').each(function() {
    if(...Condition...) {
        ...Do Stuff...
    }
}

Вы можете сделать это сжато, используя .filter . Следующий пример скроет все .testimonial divs, содержащие слово «something»:

$(".testimonial").filter(function() {
    return $(this).text().toLowerCase().indexOf("something") !== -1;
}).hide();

С простой петлей:

var testimonials= $('.testimonial');
for (var i = 0; i < testimonials.length; i++) {
  // Using $() to re-wrap the element.
  $(testimonials[i]).text('a');
}

Точнее:

$.each($('.testimonal'), function(index, value) { 
    console.log(index + ':' + value); 
});

divs  = $('.testimonial')
for(ind in divs){
  div = divs[ind];
  //do whatever you want
}

$('.testimonal').each(function(i,v){
  if (condition) {
    doSomething();
  }
});

Без обновления jQuery

document.querySelectorAll('.testimonial').forEach(function (element, index) {
    element.innerHTML = 'Testimonial ' + (index + 1);
});
<div class="testimonial"></div>
<div class="testimonial"></div>


Это мой подход, абстрагирующий идентификаторы и href's, используя универсальный селектор классов

$(function() {
  // Generic selector to be used anywhere
  $(".js-scroll-to").click(function(e) {

    // Get the href dynamically
    var destination = $(this).attr('href');

    // Prevent href=“#” link from changing the URL hash (optional)
    e.preventDefault();

    // Animate scroll to destination
    $('html, body').animate({
      scrollTop: $(destination).offset().top
    }, 500);
  });
});
<!-- example of a fixed nav menu -->
<ul class="nav">
  <li>
    <a href="#section-1" class="nav-item js-scroll-to">Item 1</a>
  </li>
  <li>
    <a href="#section-2" class="nav-item js-scroll-to">Item 2</a>
  </li>
  <li>
    <a href="#section-3" class="nav-item js-scroll-to">Item 3</a>
  </li>
</ul>







javascript jquery jquery-selectors