Прежде всего давайте исправим ваш синтаксис.Вы не можете поставить <span>
непосредственно в <u>
.Вам нужен <li>
узел.Также вы не можете / не должны помещать блочные элементы, такие как ul
, внутри встроенных элементов (span, a, b, i ...).И даже <b>
и <i>
не рекомендуются, лучше использовать семантическую разметку, например <strong>
или <em>
.
Теперь ваша проблема.Я думаю, вам не нужно заботиться о том, чтобы быть последним узлом.Если вы знаете, что текст содержит «Цена», вы можете искать его следующим образом:
var selector = $('#content').find(":contains('Price')");
$(selector).addClass('highlighted');
.highlighted {
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="content">
<div>
<u>
<li>
<span>Price</span>
</li>
</u>
</div>
</div>
Если это решение не соответствует вашим потребностям, чтобы получить последний узел, вы должны проверить всех их, есть ли у них дети или нет,Как только они этого не сделают, вы достигли своей цели.Но я должен сказать, что это решение, которое вы могли бы найти в SO. Выберите самого глубокого ребенка в jQuery