Как мне найти следующий элемент в DOM?

Вы можете использовать pd.melt , чтобы получить большую часть пути, а затем сортировать:

>>> df
  location  name  Jan-2010  Feb-2010  March-2010
0        A  test        12        20          30
1        B   foo        18        20          25
>>> df2 = pd.melt(df, id_vars=["location", "name"], 
                  var_name="Date", value_name="Value")
>>> df2
  location  name        Date  Value
0        A  test    Jan-2010     12
1        B   foo    Jan-2010     18
2        A  test    Feb-2010     20
3        B   foo    Feb-2010     20
4        A  test  March-2010     30
5        B   foo  March-2010     25
>>> df2 = df2.sort(["location", "name"])
>>> df2
  location  name        Date  Value
0        A  test    Jan-2010     12
2        A  test    Feb-2010     20
4        A  test  March-2010     30
1        B   foo    Jan-2010     18
3        B   foo    Feb-2010     20
5        B   foo  March-2010     25

(Возможно, вы захотите выбросить .reset_index(drop=True), просто

Примечание: pd.DataFrame.sort устарел в пользу pd.DataFrame.sort_values .

0
задан Serge 16 January 2019 в 11:16
поделиться

1 ответ

Проблема с вашим кодом заключается в том, что next() ищет элементы одного уровня, но элементы input не являются элементами одного уровня.

Чтобы сделать то, что вам нужно, через обход DOM, вам нужно получить ближайшего родителя li от входа .prod, затем использовать next(), чтобы получить брата li, затем find() для получите вход .categ, например:

$("input.categ").val("cat");
$("input.prod").closest('li').next('li').find("input").val("dog");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li><input class="prod"></li>
  <li><input class="categ">I need "dog" value here</li> 
</ul>

Следует отметить, что в этом случае обход DOM скорее спорный, так как вы можете просто выбрать элемент $('.categ') напрямую, но я предполагаю, что это учебное упражнение.

0
ответ дан Rory McCrossan 16 January 2019 в 11:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: