Конвертировать селектор XPath в jQuery - PullRequest
0 голосов
/ 17 сентября 2018

Для заданной (неполной) таблицы HTML:

<tr>
    ...
</tr>
<tr>
    <td><input type="radio"></td>
    <td>Red Hot Chili Peppers</td>
    <td></td>
</tr>
<tr>
    <td><input type="radio"></td>
    <td>Britney Spears</td>
    <td></td>
</tr>
<tr>
    ...
</tr>

Я использую селектор xpath //td[contains(., 'Red Hot Chili Peppers')]//preceding-sibling::td//input, чтобы щелкнуть переключатель.

Проблема в том, что xpath иногда нестабилен настраницу я тестирую.Я хочу переключиться на JQuery.

Как я могу сделать это в jQuery?

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Да, вы можете сделать это, отметив это https://api.jquery.com/contains-selector/

для использования вашего кода

$('td:contains("Red Hot Chili Peppers")').prev('td').find('input');

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

0 голосов
/ 17 сентября 2018

preceding-sibling должно соответствовать всем предшествующим братьям и сестрам, наиболее подходящим эквивалентом jQuery является prevAll:

$("td:contains('Red Hot Chili Peppers')")
  .prevAll("td")
  .find("input")
0 голосов
/ 17 сентября 2018

JQuery-эквивалент этого будет использовать :contains, prev() и find(), например:

$('td:contains("Red Hot Chili Peppers")').prev('td').find('input')

$('td:contains("Red Hot Chili Peppers")').prev('td').find('input').prop('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input type="radio"></td>
    <td>Red Hot Chili Peppers</td>
    <td></td>
  </tr>
  <tr>
    <td><input type="radio"></td>
    <td>Britney Spears</td>
    <td></td>
  </tr>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...