Подтвердить что ты не робот

В чем разница между $и jQuery

Когда я пытаюсь использовать $("#div_id") в $(document).ready, он возвращает NULL, но когда я использую jQuery("#div_id"), он возвращает фактический объект!

Почему это происходит?

ОБНОВЛЕНИЕ: Я попробовал метод noConflict без получения подсказок.

jQuery.noConflict()
function (a,b){return new c.fn.init(a,b)}

$.noConflict();
TypeError: Object function ()
    {
        return document.getElementById.apply(document, arguments)
    } has no method 'noConflict'

ОБНОВЛЕНИЕ 2:

$(document).ready(function() {
    debugger;
});

<input type="text" id="test" name="test" value="123" />

Когда я запускаю следующий код в консоли, я получил следующие результаты:

$("#test").val()
TypeError: Cannot call method 'val' of null
jQuery("#test").val()
"123"

Спасибо

4b9b3361

Ответ 1

См. jQuery.noConflict(). Могут ли другие библиотеки javascript на вашей странице использовать переменную $?

$ - это просто переменная, которая используется для псевдонима jQuery и является переменной, все может быть назначено ему.

Ответ 2

$ и jQuery оба одинаковы, кроме $ является просто псевдонимом jQuery, который вы можете изменить или удалить с помощью режима jQuery.noConflict.

Ответ 3

$также используется в Prototype.js, который представляет собой структуру javascript, такую ​​как jQuery. Возможно, ваш проект также включает ссылки на эту структуру.

Для получения дополнительной информации о том, как работает прототип доллара, перейдите здесь.

Вы можете заставить обе работать вместе с инструкцией noConflict, как указано в других ответах. Мы делаем это в одном из наших проектов, который использует $(элемент) для устаревшего кода прототипа и jQuery (элемент) для нового кода jQuery.

Ответ 4

Похоже, что что-то взяло $, для переназначения jQuery в $, попробуйте перейти:

var $ = jQuery;

Ответ 5

Возможно, у вас есть другая библиотека, которая использует $?

Ответ 6

jQuery и $ совпадают - см. исходный код jQuery:

window.jQuery = window.$ = jQuery;

Возможно, вы используете другую библиотеку, которая использует переменную $, и тогда вам нужно решить конфликт имен.

<script type="text/javascript">
  jQuery.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery $ can follow here.
  });
  // Code that uses other library $ can follow here.
</script>

Или вы можете использовать один из следующих фрагментов (в нем не будет конфликта $):

// Method 1
jQuery(document).ready(function($){
    /* some code that uses jQuery $ */ 
});

// Method 2
(function($) {
    /* some code that uses jQuery $ */ 
})(jQuery);