В YUI определите, существует ли элемент, имеющий определенное значение - PullRequest
1 голос
/ 08 сентября 2011

Я довольно хорошо знаком с jQuery, но я работаю над проектом в YUI, с которым я совершенно новичок, и не знаю, как этого добиться.

По сути, мне нужно отобразить всплывающее окно js, если существует элемент span, в котором есть текст «Неактивно» и который находится в нескольких шагах по дереву от div с классом «list_subpanel_cases».

Это грубый пример, но дело в том, что он построен динамически, поэтому мои единственные определенные селекторы - это div с классом и потомок с текстовым значением «Неактивно».

<div class="list_subpanel_cases">
  <table>
    <tbody>
      <tr>
        <td>
          <span>Active</span>
        </td>
      </tr>
      <tr>
        <td>
          <span>Inactive</span>

И мне нужно выяснить, существуют ли промежутки с текстом «Неактивно».

Надеюсь, это не слишком запутанно!

1 Ответ

1 голос
/ 08 сентября 2011

Похоже, что селекторы CSS3 не могут проверять содержимое (только атрибуты), поэтому вам придется использовать селектор для тегов-кандидатов диапазона, а затем использовать код для поиска содержимого на предмет соответствия. Вот один из способов сделать это:

function findInactive() {
    var found = null;
    Y.all(".list_subpanel_cases span").some(function(node, index, nodeList) {
        if (node.getContent() == "Inactive") {
            found = node;
            return(true);   // stop looking for more matches
        }
        return(false);   // keep looking for more matches
    });
    return(found);
}

if (findInactive()) {
    // execute code here when the Inactive span exists
}

Вы можете увидеть, как это работает здесь: http://jsfiddle.net/jfriend00/BVzqL/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...