Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2013, 19:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Как на jquery сделать выборку элементов несодержащи в в себе определённые теги
почему нельзя выбрать элементы в которых нет <b>
этот код в jquery неработает
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
<style type="text/css">
.activ{
  background-color: #00FFFF;
}
</style>
</head>
<body>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="JavaScript" type="text/javascript">
$(".content").not(".content b").addClass("activ");
</script>
</body>
</html>


зато прекрасно работает на lava Небольшая библиотека в стиле jQuery

<!DOCTYPE HTML>
<html>
<head>
  <title></title>
<style type="text/css">
.activ{
  background-color: #00FFFF;
}
</style>
</head>
<body>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<script language="JavaScript" src="http://z.illogical.ru/lava.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
lava(".content").not(".content b").addClass("activ");
</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2013, 20:13
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<!DOCTYPE HTML>
<html>
<head>
  <title></title>
<style type="text/css">
.activ{
  background-color: #00FFFF;
}
</style>
</head>
<body>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<div class="content" ><b>bbbbb</b>
</div>
<div class="content" >test
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="JavaScript" type="text/javascript">
$(".content:not(:has(b))").addClass("activ");
</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2013, 20:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

danik.js,
спасибо! воспользуюсь вашим вариантом, но ещё бы хотелось знать почему not(".content b") не работает, хотя вроде должен.
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2013, 20:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А почему должен?
(.content) отберет все div.content, далее мы фильтруем их, удаляя из выборки (.content b), то есть элементы b, являющиеся потомками .content ... Стоп, но ведь у нас в выборке и так нет никаких b

Похоже lava глючит ))
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2013, 20:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Deff,
Сообщение от danik.js
Стоп, но ведь у нас в выборке и так нет никаких b
согласен!
$(".content").not(".content:has(b)").addClass("activ");
так будет верней
Deff,
пока непонял ваш пример
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2013, 20:48
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

рони,
Неважно, уже , .not(".content:has(b)") делает без всяких переборов родителей
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2013, 21:26
inx inx вне форума
Новичок на форуме
Отправить личное сообщение для inx Посмотреть профиль Найти все сообщения от inx
 
Регистрация: 10.02.2013
Сообщений: 3

я исходил из логики, что та часть фильтра, которая не относиться к текущему элементу, будет работать как has

("foo").filter("> .bar"); // это * > .bar
// отдать элементы foo у которых есть хотя бы один прямой потомок с классом bar
Ответить с цитированием
  #8 (permalink)  
Старый 11.02.2013, 05:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$(".content").not(":has(b)").addClass("activ");
Так должно по идее работать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы русские буквы не вводились в определенные поля формы? yachainik Общие вопросы Javascript 6 13.02.2017 16:43
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
Как сделать 2 галереи JQuery на одной странице? orendzi jQuery 8 16.07.2011 15:22
jQuery Tools Tabs — как сделать авто-переключение табов? Grawl jQuery 0 06.03.2011 17:13
как сделать аналог jquery.load без jquery? vvsh AJAX и COMET 5 05.06.2009 22:40