Как добавить класс с jQuery в отдельный DIV, только если у таблицы ROW есть определенный класс? - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь добавить класс open к другому DIV вне таблицы, только если в строке таблицы есть выбранный класс.

<table id="#resultsTable">
  <tbody>
    <tr class="selected">
      <td>Follow the white rabbit...</td>
    </tr>
</table>

<div class="profile open"></div>

Этоне работает ...

$(document).ready(function () {
if ($("#resultsTable tbody tr").hasClass("selected")) {
    $(".profile").addClass("open");
}});

Ни это ...

$('table tbody tr.selected').closest('.profile').addClass('open');

Что я делаю не так?ТИА

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Ваше первое решение не работает, потому что <table id="#resultsTable"> должно быть <table id="resultsTable">.Обратите внимание на атрибут # в id таблицы.

Ваше второе решение не работает, поскольку closest() ищет от самого элемента до его предков в дереве DOM .Но у tr.selected нет предка с классом profile.

0 голосов
/ 19 декабря 2018

Значение id в HTML должно быть resultsTable вместо #resultsTable:

$(document).ready(function() {
  if ($("#resultsTable tbody tr").hasClass("selected")) {
    $(".profile").addClass("open");
  }
});
.open{
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="resultsTable">
  <tbody>
    <tr class="selected">
      <td>Follow the white rabbit...</td>
    </tr>
</table>

<div class="profile">div content</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...