Jquery: не селектор с подстановочными знаками

0

Я создаю простую функцию onclick, которая скрывает divs с тем же номером цикла, что и ссылка. Я ударился головой о кирпичную стену, пытаясь заставить работать не селектор.

В псевдо, я хочу, чтобы все divs с классом начинались с "title". ИСКЛЮЧАЕТ текущую, чтобы перейти на 0px по высоте.

$('div.[class^="title"]:not([class='title<?php echo $count;?>'])').css('height', '0px');

$ count - текущий цикл.

Это строка, которую мне удалось создать. Правильно ли этот синтаксис?

  • 0
    У вашего элемента есть несколько классов? Вы уверены, что этот определенный класс всегда будет первым в списке className?

3 ответа

2
Лучший ответ

ИСПРАВЛЕНО! После нескольких часов попыток заставить этот код работать, я понял (незадолго до @Tushar). Проблема заключалась в том, что я использовал несколько классов. Я изменил "заголовок" на ID. Теперь все работает отлично.

Спасибо всем за вашу помощь.

окончательный код выглядел так:

$('#title<?php echo $count; ?>').animate({ opacity: "1", height: "300px" },{queue: false, duration: 200} );
                                $('div[id^="title"]').not('div[id$="title<?php echo $count; ?>"]').css('opacity', '0');
  • 0
    Это хорошо, что вы нашли решение
3

Пытаться

$('div.[class^="title"]:not([class="title<?php echo $count;?>"])').css('height', '0px');
//Changed single to double quote   ^                         ^
  • 0
    Не повезло. Но мой клик начал оживлять себя, чтобы показать. Так что это хороший знак. хм .... Полный код для этой функции wp:
  • 0
    jQuery(function($) { $(document).ready(function(){ $('a.title<?php echo $count; ?>').click(function() { $('div.title<?php echo $count; ?>').animate({ opacity: "1" },{queue: false, duration: 200} ) .animate({ height: "300px" }, 200 ); $('div.[class^="title"]:not([class="title<?php echo $count;?>"])').css('height', '0px'); $('div.[class^="title"]:not([class="title<?php echo $count;?>"])').css('opacity', '0'); }); }); });
Показать ещё 17 комментариев
1

У вас есть синтаксическая ошибка в вашем коде. Вы должны использовать двойную кавычку вместо одиночной кавычки на вашем Javascript. Поэтому правильным является то, что вы используете:

$('div.[class^="title"]:not([class="title<?php echo $count;?>"])').css('height', '0px');

Я думаю, если вы попробуете это, это должно сработать!

  • 0
    Боюсь, не повезло. неопознанное выражение, по-видимому. По крайней мере, ваш появился на консоли. Хахаха.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню