Задать вопрос
@2slide

Почему не работает jquery .find?

Не могу разобраться, почему не работает.
Задача - спрятать все поля которые удовлетворяют условию.
visible="0" и показать те которые ':Contains(php)'.

Первое var ss = $("#blogi_selekt [visible*='0']"); работает , а .find нет.

var ss = $("#blogi_selekt [visible*='0']");
      $(ss).slideUp(100);
     
      $(ss).find(':Contains(php)');
      $(ss).slideDown(200);


<div id="blogi_selekt">
      <span value="JS" visible="1">JS</span>
      <span value="a" visible="0" >a</span>
      <span value="СSS" visible="1">СSS</span>
      <span value="PHP" visible="1">PHP</span>
 </div>
  • Вопрос задан
  • 4294 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
metamorph
@metamorph
1. Избыточное использование $(ss) - не нужно. Достаточно просто ss.
2. Найти не может потому, что ss - это набор элементов, у которых visible=0. Такой элемент у Вас один, и в нем нет 'php'.
3. Не помню точно, но contains может оказаться чувствительным к регистру. Попробуйте искать 'PHP'.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kudlayko
@kudlayko
var bs = $("#blogi_selekt"); // выбираем весь блок.
bs.find("[visible*='0']").slideUp(100); // выберет элемент a и скрыть
bs.find(':contains("PHP")').text("php"); // заменить PHP на php
bs.find("[visible*='0']").slideDown(200); // выберет элемент a и отобразить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы