jQuery не найдет элемент с помощью селектора ID, но найдет его только по ID

#jquery #asp.net

#jquery #asp.net

Вопрос:

Я разрабатываю ASP.NET приложение и использование jQuery. У меня есть <div> элемент с id='slider' . При попытке получить доступ к элементу с помощью $('#slider') , он возвращает null , но при попытке получить к нему доступ без селектора, т.Е. $('slider') элемент возвращен.

Что может быть причиной этого?

Комментарии:

1. Хм, это… маловероятно . Не могли бы вы показать свой код — HTML и Javascript?

2. Нам нужен некоторый код для просмотра. Как сказал @lonesomeday, Jquery не вернул бы элемент с этим селектором, если только в вашем коде не было <slider></slider> элемента на странице, который не является элементом HTML.

3. Используете ли вы jQuery, а не, например, Prototype.JS ? Потому что последнее является прототипом обозначения

Ответ №1:

Если селектор не совпадает, то jQuery не возвращает null . Итак, это два пункта «Действия в отличие от jQuery», которые предполагают, что ответ таков: $ на вашей странице нет jQuery.

Что-то еще переопределяет его. Возможно, mootools или prototype.js (Я не уверен, что любой из них возвращает, если нет соответствующего элемента, но я почти уверен, что у обоих есть $ функция, которая принимает идентификатор, а не селектор CSS в качестве аргумента).

Комментарии:

1. Хорошо, это многое объясняет. Похоже, у меня есть ссылка на prototype И jquery на одной странице, и мне действительно нужны они оба. Как я могу использовать их оба на одной странице?

2. попробуйте написать $ = jquery , прежде чем использовать $

3. Используйте неконфликтный режим jQuery и обращайтесь к нему как jQuery вместо $ .

Ответ №2:

как указано выше, проблема вызвана прототипом.

Решение: вы должны использовать jquery noconflict. Когда вы будете использовать это, любой код jquery сохранит переменную $ перед началом выполнения, а после выполнения кода jquery это восстановит значение $.

ссылка:api.jquery.com/jQuery.noConflict /