Ошибка при использовании переменной с jQuery Selector - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь получить идентификатор td для выполнения некоторых функций над ними. У меня есть несколько таких классов, но мне нужен именно этот td.

Вот мой код:

HTML:

<table border=1 class="yo">
<tbody>
    <tr>
        <td>a</td>
        <td class="sigh">b</td>
    </tr>
</tbody>
</table>
<table border=1 class="yoyo">
<tbody>
    <tr>
        <td>x</td>
        <td class="dSigh" id="df">y</td>
    </tr>
</tbody>
</table>

JQuery:

 var abc = $('.yo').next().attr('class');
 console.log(abc);
 var tableBodyCols2 = $('.' + abc + '> .dSigh').attr('id');
 console.log(tableBodyCols2);

Результат, который я получаю:

йо

неопределенный

Ожидаемый результат:

йойо

ДФ

1 Ответ

0 голосов
/ 03 ноября 2018

Удалите дочерний комбинатор (>), поскольку .dSigh не является прямым потомком .yoyo. Вам необходимо использовать потомок комбинатора (пробел):

var abc = $('.yo').next().attr('class');
console.log(abc);
var tableBodyCols2 = $('.' + abc + ' .dSigh').attr('id');
console.log(tableBodyCols2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border=1 class="yo">
  <tbody>
    <tr>
      <td>a</td>
      <td class="sigh">b</td>
    </tr>
  </tbody>
</table>
<table border=1 class="yoyo">
  <tbody>
    <tr>
      <td>x</td>
      <td class="dSigh" id="df">y</td>
    </tr>
  </tbody>
</table>
...