Просмотр полной версии : Не работает селектор
Kenshi25
26.09.2010, 13:00
Он должен во все четные элементы li, не находящиеся внутри ul класса disabled прописать какой-нибудь код.
$("#omg li:odd").not(parent("ul.disabled")).html("lalala");
Но увы, не работает(
$(':not(ul.disabled) #omg li:odd').html( 'Бла бла бла' );
Kenshi25
26.09.2010, 13:20
Есть проблема при таком способе, если внутри li есть еще ul, селектор игнорирует его содержимое, а должен также добавлять текст в li внутри этого ul
$('#omg li:odd, ul', ':not(ul.disabled)').html( 'Бла бла бла' );
Kenshi25
26.09.2010, 15:51
:not(ul.disabled) он теперь почему-то игнорирует, во все подрят текст вставляет(
monolithed
26.09.2010, 21:38
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$('div :not(.disabled:parent) li').html('text');
});
</script>
<div>
<ul>
<li></li>
<li></li>
<li>
<ul>
<li></li>
<li></li>
</ul>
</li>
</ul>
<ul class="disabled">
<li></li>
<li></li>
</ul>
</div>
</body>
Kenshi25
27.09.2010, 13:28
В общем покажу на конкретном примере:
Нужно расскрасить списки разным текстом красным и синим, но происходит следующее:
1) Списки третьей степени вложенности расскрашиваются только синим
2) А списки внутри disabled глубже чем первой вложенности раскрашиваются как обычно, хотя не должны.
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$('div :not(.disabled:parent) li:even').css('color', 'red');
$('div :not(.disabled:parent) li:odd').css('color', 'blue');
});
</script>
<div>
<ul>
<li>red</li>
<li>blue</li>
<li>red
<ul>
<li>blue
<ul>
<li>red</li>
<li>blue</li>
<li>red</li>
</ul>
</li>
<li>blue</li>
<li>red</li>
</ul>
</li>
</ul>
<ul class="disabled">
<li>black
<ul>
<li>black</li>
<li>black</li>
</ul>
</li>
<li>black</li>
</ul>
</div>
</body>
Kenshi25
27.09.2010, 18:50
Ну что никто помочь не сможет?))))
$(function(){
var $items = $("div > ul:not(.disabled) li");
$items.filter(":odd").css("color", "#f00");
$items.filter(":even").css("color", "#00f");
});
так?
А если еще использовать метод .end, то можно и без кеширования обойтись. :)
Но вообще надо убивать за подобные задачи, для которых нужен такой "unobstructive"-javascript :(
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot