JQuery - получить первый случай выбора - PullRequest
3 голосов
/ 30 августа 2011

Как я могу определить, содержит ли первое вхождение (элемент 0) текст "Нет ошибок"

if ($(xml).find('errors')[0].text() == 'No Errors') 
{
  do something
}

!!!редактировать !!!

 found it...

 if ($(xml).find('error').first().text() == 'No errors') 

Ответы [ 4 ]

6 голосов
/ 30 августа 2011

Использование [0] заставляет JavaScript / jQuery возвращать узел DOM, вместо объекта jQuery, вы можете попробовать:

if ($(xml).find('.errors:first').text() == 'No Errors') 
{
  // do something
}

Или:

if ($(xml).find('.errors').eq(0).text() == 'No Errors') 
{
  // do something
}

Оба эти if оператора требуют, чтобы текст был , а не просто содержит , равный 'No Errors'.

Чтобы проверить, что текст содержит текст «Нет ошибок»:

if ($(xml).find('.errors').eq(0).text().toLowerCase().indexOf('no errors') > -1) 
{
  // do something
}

JS Fiddle demo .

Ссылки:

1 голос
/ 30 августа 2011

Использование скобок даст вам элемент DOM;вам нужен объект jQuery, чтобы вы могли использовать .text() для него.Для проверки на равенство:

if ($(xml).find('errors:first').text() == "No Errors")

Для проверки на содержание:

if ($(xml).find('errors:first').text().indexOf("No Errors") > -1)

0 голосов
/ 30 августа 2011
if ($(xml).find('errors').eq(0).text() == 'No Errors') 
{
  do something
}
0 голосов
/ 30 августа 2011

Это должно работать:

if ($(xml).find('errors').first().text().indexOf('No Errors') != -1)
{
  do something
}

Изменения:

  1. Используйте first() для получения объекта jQuery первого сопоставленного элемента, а не объекта DOM
  2. Используйте indexOf() в тексте, чтобы увидеть, есть ли внутри «Нет ошибок»
  3. Сравните с -1, чтобы увидеть, есть ли оно
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...