Не очень хорошая идея пытаться найти фрагмент буквального HTML-кода с помощью contains
. HTML имеет тенденцию меняться, и даже один пробел может нарушить код.
Вместо этого используйте :has
и передайте правильный селектор для дочернего элемента:
$(document).ready(function(){
$("p:contains(is)").css("background-color", "yellow");
$("li:contains('Mickey')").addClass('left');
$("li:has(a[href$=aspx]:contains('Mickey'))").addClass("yellow");
$("li:contains('Pluto')").addClass('left');
});
.red { border-top: 10px solid red; }
.yellow { border-top: 10px solid yellow; }
.left { border-left: 3px solid green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<ul id="choose">
<li>Goofy</li>
<li><a href="blabla.aspx">Mickey</a></li>
<li><a href="other.ext">Mickey</a></li>
<li>Pluto</li>
</ul>
Кроме того, вы также можете использовать только селектор самой ссылки и получить li
с .parent()
.