wael34218
wael34218

Reputation: 4930

What is the difference between $ and jQuery

When I try to use $("#div_id") in $(document).ready it returns NULL, but when I use jQuery("#div_id") it returns the actual object!

Why is that happening?

UPDATE: I tried noConflict method without gaining any hints.

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'

UPDATE 2:

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

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

When I run the following code in the console i got those results:

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

Thanks

Upvotes: 21

Views: 15432

Answers (6)

Pavel Hodek
Pavel Hodek

Reputation: 14577

jQuery and $ are the same - see jQuery source code:

window.jQuery = window.$ = jQuery;

Maybe you use another library that uses variable $ and then you have to solve naming conflict.

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

Or you can use one of the following snippet (in it's body there will be no conflict of $):

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

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

Upvotes: 2

user787034
user787034

Reputation:

$ and jQuery both are same except $ is just an alias of jQuery which you can change or remove with jQuery.noConflict mode.

Upvotes: 10

Dan Lord
Dan Lord

Reputation: 6191

Looks like something has taken the $, to reassign jQuery to $, try going:

var $ = jQuery;

Upvotes: 3

koenmetsu
koenmetsu

Reputation: 1034

$ is also used in Prototype.js, which is a javascript framework like jQuery. It could be the case that your project also includes references to this framework.

For more info on how the prototype dollar works, go here.

You can make the two work together with the noConflict statement, as stated in the other answers. We're doing this in one of our projects, which uses the $(element) for legacy prototype code, and jQuery(element) for new jQuery code.

Upvotes: 6

Graham
Graham

Reputation: 15214

See jQuery.noConflict(). Could other javascript libraries on your page be using the $ variable?

$ is just a variable that is used to alias jQuery and being a variable, anything could be assigned to it.

Upvotes: 19

jestem_wojtek
jestem_wojtek

Reputation: 81

Maybe you have another library that uses $?

Upvotes: 2

Related Questions