Действительно копирует винт идентификатора селекторы jQuery?

Ну, для меня это тысячи крошечных вещей. Некоторые макросы, макет GUI в целом в Eclipse я нахожу ужасным. Я не могу открыть несколько проектов в разных окнах в Eclipse. Я могу открыть несколько проектов, но тогда система, основанная на представлении, меняет на меня кучу вещей, когда я переключаю файлы. Проверки кода IntelliJ кажутся лучше. Его всплывающие подсказки для исправления общих проблем - это хорошо. Множество простых в использовании вещей, таких как боковая панель, где я могу навести курсор на горячую точку, и она расскажет мне о каждом реализующем подклассе метода или метода, который я реализую, и откуда.

Всякий раз, когда мне приходилось использовать или смотреть, как кто-то использует, «Затмение» кажется, что они могут делать большинство вещей, которые я могу делать в IntelliJ, но это отнимает у них больше времени и становится более громоздким.

7
задан Matt 27 June 2009 в 23:53
поделиться

5 ответов

jQuery соответствует ровно одному элементу при запросе идентификатора. Массив из не более одного объекта Element будет возвращен $ ("# foo"). Get () . См. документацию jQuery для получения дополнительной информации или попробуйте сами.

$(function() {
    alert($("#foo").length);
});
6
ответ дан 6 December 2019 в 06:50
поделиться

Идентификаторы элементов должны быть уникальными. Наличие нескольких DIV с одним и тем же идентификатором было бы неверным и непредсказуемым, а также противоречило бы цели идентификатора. Если вы сделаете это:

$('.myDiv').fadeOut();

Это приведет к исчезновению их обоих, если вы дадите им класс myDiv и уникальные идентификаторы (или вообще ни одного).

11
ответ дан 6 December 2019 в 06:50
поделиться

«Примечание: я знаю, что повторяющиеся идентификаторы противоречат стандартам»

Тогда не делайте этого. Вы уже разобрались с двумя проблемами. Это нарушает стандарты и мешает механизму выбора jQuery (и даже обычного DOM). Вероятно, в будущем будет больше проблем.

Вполне возможно, вы неправильно используете fancybox, и в этом случае я надеюсь, что кто-то, знакомый с ним, поможет вам. Или, что еще хуже, если сам сценарий ошибочен, вы не должны его использовать.

7
ответ дан 6 December 2019 в 06:50
поделиться

Я столкнулся с той же проблемой. По-видимому, когда вы создаете контент на странице, с которой хотите открыть Fancybox, он создает зеркальный div исходного контента. В моем случае элементы управления были заключены в созданный fancybox блок div с именем "fancy_div"

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

$ ('# fancy_div [id = InputText] '). val ();

ваши элементы управления могут существовать в другом месте в Fancybox. Лучше всего посмотреть на источник просмотра, но он Поместите этот тег в свою форму: Получите ценность Откройте форму, щелкните тег, чтобы открыть окно предупреждения.
Убедитесь, что курсор находится внутри содержимого страницы (найдите элемент управления и щелкните).
Щелкните правой кнопкой мыши вне управления и выберите «просмотреть источник».
Существует множество div, так что ищите div, который содержит ваш контент.

Надеюсь, это поможет.

0
ответ дан 6 December 2019 в 06:50
поделиться

Поскольку $ ('# myDiv') вернет только первый div с этим идентификатором, вам нужно будет найти все элементы с этим идентификатором, используя этот трюк:

$('[id=myDiv]');

Итак, в вашем случае, чтобы применить fadeOut к все эти блоки:

$('[id=myDiv]').fadeOut();

И если вы хотите убедиться, что ваша страница не имеет этого идентификатора дважды, вы можете удалить лишние, выполнив следующие действия:

$('[id=myDiv]:gt(0)').remove();
1
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

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