Найти <li> с определенным текстом

296
07 марта 2017, 15:51

Привет.

Есть код:

var ex = $('.ex-ul').find( $('.ex-li').text( $('.input').val() ));

Но в ex записывается [object Object].
Как правильно найти элемент по содержимому?

Answer 1

Я так понимаю, вам нужен contains - соответствует элементам, которые содержат строку text :

$('div:contains("тест")').css('border', '1px solid red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div>Петр</div> 
<div>тест</div> 
<div>кто-то еще</div>

Для точного совпадения по слову можно использовать filter. Он фильтрует набор выбранных элементов по заданному критерию:

var str = 'тест'; 
var elements = $("div").filter(function() { 
    return $(this).text() === str; 
}).css('border', '1px solid red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div>Петр</div> 
<div>тест</div> 
<div>кто-то еще</div> 
<div>тампарам</div> 
<div>тест</div> 
<div>тест222</div>

Answer 2

Проблема решилась топорно: перебором в цикле.

$.each($('.ex-li'), function (index, value) 
{
  if (val != element.text()) 
  {
    //что то делаем
  }
});
READ ALSO
onscroll при отсутствии сколла

onscroll при отсутствии сколла

Есть такой код, который говорит, что при скроллинге скролл достигнул конца страницы

294
Как работает функция click в jquery?

Как работает функция click в jquery?

Вот например, что делает вот эта?

309
Фон со звездами. Градиентом

Фон со звездами. Градиентом

Всем здравствуйте

245