Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Селектор :not ИЛИ (https://javascript.ru/forum/jquery/40247-selektor-not-ili.html)

vladimircape 29.07.2013 16:38

Селектор :not ИЛИ
 
console.log($(this).nextUntil("tr:not([class])"));
нужно выбрать до tr без класса или до tr с классом selected, что первым встретится
как правильно записать?

skrudjmakdak 29.07.2013 16:57

так?:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 
<html> <head>

</head> 
<body> 
<table>
	<tr><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr class="selected"><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr class="selected"><td>1</td></tr>
	<tr><td>1</td></tr>
	<tr><td>1</td></tr>
</table>

	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

	<script type="text/javascript">
console.log($('tr.selected').eq(0))
	</script>
</body> 
</html>

vladimircape 29.07.2013 17:01

нет.
Мне нужно выбрать все следующие селекторы tr , до ближайщего tr которыw не имеют атрибута класса или имеет пустой класс или класс selected

skrudjmakdak 29.07.2013 17:31

ммм. я думаю стандартными средствами jquery не получится...
либо циклом гнать.. либо $(this).siblings().each(function(index, ths){/*тут исключать элементы по условию*/});

vladimircape 29.07.2013 17:49

Пока я сделал очень топорно
aE=$(this).nextUntil("tr.selected"),
bE=$(this).nextUntil('tr[class=""]'),
cE=$(this).nextUntil('tr:not([class])'),
а потом у того ,где получилось меньше элементов, тот и вывожу, но блин хотелось бы сделать красиво. в одну строчку
не понимаю почему не работает в одну строку

рони 29.07.2013 18:22

vladimircape,
нормально должно работать
$(this).nextUntil('tr.selected, tr:not([class]), tr[class=""]')

danik.js 29.07.2013 18:30

А если через запятую селекторы указать? Хотя с :not может не проканать.


Часовой пояс GMT +3, время: 21:29.