Если текст внутри<p>равен X, тогда addClass

Я хочу проверить, что содержание в ближайшем <p> и добавьте класс в div соответственно.

Вот где я застрял.

$('p').each(function () {
    if ($('p').text() == 'E. A. K') {
        $('.pl1').addClass('service');
    }else{
        $('.pl2').addClass('service');
    }
});
.service:after{content:"(service)"}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>E. A. K.</p>
<p>F. F.</p>

<span class=pl1>Player 1</span><br>
<span class=pl2>Player 2</span>

ТАК если первый <p> тогда EAK .pl1 имеет класс service если первый <p> тогда FF .pl2 имеет класс service

Считайте, что есть много <p> все с этими двумя содержаниями. И некоторые новые будут добавляться время от времени.

2 ответа

Решение

Сначала вам нужно немного ускорить процесс и убедиться, что вы закрыли скобки в правильных местах.

Ты говоришь the <p> that appears closest to the top of the body, тогда вы хотите только 1, поэтому нет необходимости перебирать каждый <p>

Это должно делать то, что вы хотите, но все еще не уверены, поскольку ваша логика странная, в любом случае надеюсь, что это поможет.

$('body p:first').filter(function() {
  if ($(this).text() == 'E. A. K.') {
    $('.pl1').addClass('service');
  } else {
    $('.pl2').addClass('service');
  }
});

демонстрация

$('body p:first').filter(function() {
  if ($(this).text() == 'E. A. K.') {
    $('.pl1').addClass('service');
  } else {
    $('.pl2').addClass('service');
  }
});
.service:after {
  content: "(service)"
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>E. A. K.</p>
<p>F. F.</p>

<span class=pl1>Player 1</span><br>
<span class=pl2>Player 2</span>

$('p:first').map(function() {
  if ($(this).text() == "E. A. K.") {
    $('.pl1').addClass('service');
  } else {
    $('.pl2').addClass('service');
  }
});
.service {
  color: red;
}

.service:after {
  content: "(service)"
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>E. A. K.</p>
<p>F. F.</p>

<span class="pl1">Player 1</span><br>
<span class="pl2">Player 2</span>

Другие вопросы по тегам