У меня есть неупорядоченный список, подобный этому
<ul>
<li id="projectrow_364">
<span>Forest</span>
</li>
<li id="projectrow_365">
<span>Life</span>
</li>
<li id="projectrow_367">
<span>House</span>
</li>
<li id="projectrow_388"> Country
<ul>
<li id="projectrow_390">
<span>US</span>
</li>
</ul>
</li>
<ul>
И на той же странице у меня есть
<h3 id="project-title-id"> US</h3>
поэтому я хочу добавить это имя класса " class="activeProject"
" выше <ul> li
name, где текст этого # идентификатора проекта совпадает с <ul> <li>
текстовым значением.... Как это сделать это с jquery?
Вот один из способов: http://jsfiddle.net/jayblanchard/VyBgu/
var currentHeader = $.trim( $('#project-title-id').html() );
var currentLI = $('li span:contains(' + currentHeader + ')');
currentLI.addClass('activeProject');
jQuery предоставляет :contains
селектор, чувствительный к регистру:
var str = $('#project-title-id').text();
var li = $('ul li ul li:contains('+str+')');
li.addClass('activeProject');
:contains
я собираюсь использовать в моем проекте с этого момента. Благодарю.
:contains
может иметь другой результат, отличный от ожидаемого OP jsfiddle.net/viphalongpro/HCWm4/1 В таком случае, возможно, OP хочет, чтобы USA
не рассматривались как activeProject
. Однако, как выглядит в ситуации с ОП, его можно использовать.