1)
Is jQuery a library for client scripting or server scripting?
Client-side scripting.
2)
Is JQuery a W3C standard?
No.
jQuery is not a W3C standard.
3)
What is the basic need to start with JQuery?
To start with JQuery, one needs to make reference
of its library. The latest version of JQuery can be downloaded from JQuery.com.
4)
Which is the starting point of code execution in JQuery?
The starting point of JQuery code execution is
$(document).ready() function which is executed
When DOM is loaded.
5)
What does dollar sign ($) means in jQuery?
Dollar Sign is nothing but it's an alias for JQuery.
Take a look at below JQuery code.
$(document).ready(function(){
});
Over here $ sign can be replaced with "JQuery"
keyword.
JQuery(document).ready(function(){
});
6)
Can we have multiple document.ready() function on the same page?
YES. We can have any number of document.ready()
function on the same page.
7)
Can we use our own specific character in the place of $ sign in jQuery?
Yes. It is
possible using Jquery.noConflict().
8)
Is it possible to use other client-side libraries like MooTools, Prototype
along with jQuery?
Yes.
9)
What is jQuery.noConflict?
As other client-side libraries like MooTools,
Prototype can be used with jQuery and they also use $() as their global
function and to define variables. This situation creates conflict as $() is used by JQuery and other
library as their global function. To overcome from such situations, JQuery has
introduced JQuery.noConflict().
jQuery.noConflict();
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});
You can also use your own specific character in the
place of $ sign in JQuery.
var $j =
jQuery.noConflict();
// Use jQuery via jQuery(...)
$j(document).ready(function(){
$j("div").hide();
});
10)
What is the difference between .js and .min.js?
jQuery library comes in 2 different versions
Development and Production/Deployment. The deployment version is also known as
minified version. So, .min.js is basically the minified version of jQuery
library file. Both the files are same as far as functionality is concerned. But
min.js is quite small in size so it loads quickly and saves bandwidth.
11)
Why there are two different version of JQuery library?
JQuery library comes in 2 different versions.
1.
Development
2.
Production/Deployment
The development version is quite useful at
development time as JQuery is open source and if you want to change something
then you can make those changes in development version. But the deployment
version is minified version or compressed version so it is impossible to make
changes in it. Because it is compressed, so its size is very less than the
production version which affects the page load time.
12) What is CDN?
CDN is abbreviated as Content Distribution
network and it is said to be a group of companies in different location with
network containing copies of data files to maximize bandwidth in accessing the
data.
A content delivery network or content distribution
network (CDN) is a large distributed system of servers deployed in multiple
data centres across the Internet.
The goal of a CDN is to serve content to end-users
with high availability and high performance.
13) What are the two
types of CDNs?
There are two types of CDNs:
1.
Microsoft
– Load jQuery from Ajax CDN.
2.
Google
– Load jQuery from Google libraries API.
14)
Which are the popular jQuery CDN? and what is the advantage of using CDN?
There are 3 popular jQuery CDNs.
1. Google.
2. Microsoft
3. jQuery.
Advantage of using CDN.
·
It reduces the load from your server.
·
It saves bandwidth. jQuery framework
will load faster from these CDN.
·
The most important benefit is it will
be cached, if the user has visited any site which is using jQuery framework
from any of these CDN
15)
How to load jQuery from CDN?
Below is the code
to load jQuery from all 3 CDNs.
Code to load jQuery Framework from Google CDN
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
Code to load jQuery Framework from Microsoft CDN
<script type="text/javascript"
src="http://ajax.microsoft.com/ajax/jquery/jquery-1.9.1.min.js">
</script>
Code to load jQuery Framework from jQuery Site(EdgeCast CDN)
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.9.1.min.js">
</script>
16)
How to load jQuery locally when CDN fails?
It is a good
approach to always use CDN but sometimes what if the CDN is down (rare
possibility though) but you never know in this world as anything can happen.
Below given jQuery
code checks whether jQuery is loaded from Google CDN or not, if not then it
references the jQuery.js file from your folder.
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
document.write(unescape("%3Cscriptsrc='Scripts/jquery.1.9.1.min.js'
type='text/javascript'%3E%3C/script%3E"));
}
</script>
It first loads the jQuery from Google CDN and then
check the jQuery object. If jQuery is not loaded successfully then it will
references the jQuery.js file from hard drive location.
In this example, the jquery is loaded from Scripts
folder.
17)
Difference between $(this) and 'this' in jQuery?
This and $(this) refers to the same element. The only
difference is the way they are used. 'this' is used in traditional sense, when
'this' is wrapped in $() then it becomes a jQuery object and you are
able to use the power of jQuery.
$(document).ready(function(){
$('#spnValue').mouseover(function(){
alert($(this).text());
});
});
In below example, this is an object but since it is
not wrapped in $(), we can't use jQuery method and use the native
JavaScript to get the value of span element.
$(document).ready(function(){
$('#spnValue').mouseover(function(){
alert(this.innerText);
});
});
18)
How do you check if an element is empty?
There are 2 ways to check if element is empty or
not. We can check using ":empty" selector.
$(document).ready(function(){
if ($('#element').is(':empty')){
//Element is empty
}
});
And the second way is using the
"$.trim()" method.
$(document).ready(function(){
if($.trim($('#element').html())=='') {
//Element is empty
}
});
19)
How do you check if an element exists or not in jQuery?
Using jQuery length property, we can ensure whether
element exists or not.
$(document).ready(function(){
if ($('#element').length > 0){
//Element exists
}
});
20)
What is the use of jquery .each() function?
The $.each() function is used to iterate over a jQuery
object. The $.each() function can be used to
iterate over any collection, whether it is an
object or an array.
21)
What is the difference between jquery.size() and jquery.length?
jQuery .size() method returns number of element in the
object. But it is not preferred to use the size() method as jQuery provide .length property and which does the
same thing. But the, .length property
is preferred because it does not have the overhead of a function call.
22)
What is the difference between $('div') and $('<div/>') in jQuery?
$('<div/>'): This creates a new div element.
However, this is not added to DOM tree unless you
Don’t append it to any DOM element.
$(‘div’) : This selects all the div element present
on the page.
23)
What is the difference between parent() and parents() methods in jQuery?
The basic difference is the parent() function
travels only one level in the DOM tree, where parent function search through
the whole DOM tree.
24)
What is the difference between eq() and get() methods in jQuery?
eq() returns the element as a jQuery object. This
method constructs a new jQuery object from one element within that set and
returns it. That means that you can use jQuery functions on it.
get() return a DOM element. The method retrieves the DOM elements matched by the jQuery object. But as it is a DOM element and it is not a jQuery-wrapped object. So jQuery functions
get() return a DOM element. The method retrieves the DOM elements matched by the jQuery object. But as it is a DOM element and it is not a jQuery-wrapped object. So jQuery functions
can’t be used.
25)
How do you implement animation functionality?
The .animate() method allows us to create animation
effects on any numeric CSS property. This method changes an element from one
state to another with CSS styles. The CSS property value is
changed gradually, to create an animated effect.
Syntax is:
(selector).animate({styles},speed,easing,callback)
·
styles: Specifies one or more CSS
properties/values to animate.
·
duration: Optional. Specifies the
speed of the animation.
·
easing: Optional. Specifies the speed
of the element in different points of the animation. Default value is
"swing".
·
callback: Optional. A function to be
executed after the animation completes.
Simple use of animate function is,
$("btnClick").click(function(){
$("#dvBox").animate({height:"100px"});
});
26)
How to disable jQuery animation?
Using jQuery property "jQuery.fx.off", which when set to true, disables
all the jQuery animation. When this is done, all animation methods will
immediately set elements to their final
state when called, rather than displaying an
effect.
27)
How do you stop the currently-running animation?
Using jQuery
“.stop()” method.
28)
What is the difference between .empty(), .remove() and .detach() methods in
jQuery?
All these methods .empty(), .remove() and .detach() are used for
removing elements from DOM
but they all are different.
.empty(): This method
removes all the child element of the matched element where remove()
method removes set of matched elements from DOM.
.remove(): Use .remove() when you want
to remove the element itself, as well as everything inside it. In addition to
the elements themselves, all bound events and jQuery data associated
with the elements are removed.
.detach(): This method is the
same as .remove(), except that .detach() keeps all jQuery data associated with the
removed elements. This method is useful when removed elements are to be
reinserted into the DOM at a later time.
29)
Explain .bind() vs .live() vs .delegate() vs .on()
All these 4 jQuery methods are used for attaching
events to selectors or elements. But they all are
different from each other.
<a href="http://jquerybyexample.blogspot.com/2010/06/jquery-bind-function-exampledemo.html">.bind()</a>:
This is the easiest and quick method to bind events. But the issue with bind()
is that it doesn't work for elements added dynamically that matches the same
selector. bind() only attach events to the current elements
not future element. Above that it also has performance issues when dealing with
a large selection.
<a href="http://jquerybyexample.blogspot.com/2010/06/jquery-live-function-exampledemo.html">.live()</a>: This method overcomes the disadvantage of bind(). It works for dynamically added elements or future elements. Because of its poor performance on large pages, this method is deprecated as of jQuery 1.7 and you should stop using it. Chaining is not properly supported using this method.
<a href="http://jquerybyexample.blogspot.com/2010/08/jquery-delegate-function-exampledemo.html">.delegate()</a>: The .delegate() method behaves in a similar fashion to the .live() method, but instead of attaching the selector/event information to the document, you can choose where it is anchored and it also supports chaining.
.on(): Since live was deprecated with 1.7, so new method was introduced named ".on()". This method provides all the goodness of previous 3 methods and it brings uniformity for attaching event handlers.
30) What is wrong with this code line "$('#myid.3').text('blah blah!!!');"
<a href="http://jquerybyexample.blogspot.com/2010/06/jquery-live-function-exampledemo.html">.live()</a>: This method overcomes the disadvantage of bind(). It works for dynamically added elements or future elements. Because of its poor performance on large pages, this method is deprecated as of jQuery 1.7 and you should stop using it. Chaining is not properly supported using this method.
<a href="http://jquerybyexample.blogspot.com/2010/08/jquery-delegate-function-exampledemo.html">.delegate()</a>: The .delegate() method behaves in a similar fashion to the .live() method, but instead of attaching the selector/event information to the document, you can choose where it is anchored and it also supports chaining.
.on(): Since live was deprecated with 1.7, so new method was introduced named ".on()". This method provides all the goodness of previous 3 methods and it brings uniformity for attaching event handlers.
30) What is wrong with this code line "$('#myid.3').text('blah blah!!!');"
The problem with above statement is that the
selectors is having meta characters and to use any of the meta-characters (such
as!”#$ %&'()*+,./:;<=>?@[\]^`{|} ~) as a literal part of a name, it
must be escaped with with two backslashes: \\. For example, an element with
id="foo. Bar", can
use the selector $(“#foo\\.bar”).
So the correct syntax is,
$('#myid\\.3').text('blah blah!!!');
31)
How to create clone of any object using jQuery?
jQuery provides clone() method which performs a deep copy of the set
of matched elements, meaning that it copies the matched elements as well as all
of their descendant elements and text nodes.
$(document).ready(function(){
$('#btnClone').click(function(){
$('#dvText').clone().appendTo('body');
return false;
});
});
32)
Does events are also copied when you clone any element in jQuery?
As explained in previous question, using clone() method, we can create clone
of any element but the default implementation of the clone() method doesn't copy events
unless you tell the clone() method to copy the events. The clone() method takes a parameter, if
you pass true then it will copy the events as well.
$(document).ready(function(){
$("#btnClone").bind('click', function(){
$('#dvClickme').clone(true).appendTo('body');
});
33)
What is difference between prop and attr?
attr(): Get the value of an attribute
for the first element in the set of matched elements. Whereas,.prop(): (Introduced in jQuery 1.6) Get
the value of a property for the first element in
the set of matched elements.
Attributes carry additional information about an HTML element and come in name="value" pairs. Where Property is a representation of an attribute in the HTML DOM tree. Once the browser parse your HTML code, corresponding DOM node will be created which is an object thus having properties.
attr() gives you the value of element as it was defines in the html on page load. It is always recommended to use prop() to get values of elements which is modified via javascript/jquery , as
it gives you the original value of an element’s
current state.
34)
What is event.PreventDefault?
The event.preventDefault() method stops the default action of an element
from happening. For
example, prevents a link from following the URL.
35) What is the difference between event.PreventDefault and event.stopPropagation?
event.preventDefault(): Stops the default
action of an element from happening.
event.stopPropagation(): Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. For example, if there is a link with a click method attached inside of a DIV or FORM that also has a click method attached, it will prevent
event.stopPropagation(): Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event. For example, if there is a link with a click method attached inside of a DIV or FORM that also has a click method attached, it will prevent
the DIV or FORM click method from firing.
36)
What is the difference between event.PreventDefault and "return
false"?
e.PreventDefault()
will prevent the default event from occurring, e.stopPropagation() will prevent
the event from bubbling up and return
false will do both.
37) What is the
difference between event.stopPropagation and event.stopImmediatePropagation?
event.stopPropagation() allows other
handlers on the same element to be executed, while event.stopImmediatePropagation() prevents
every event from running. For example, see below jQuery code block.
$("p").click(function(event){
event.stopImmediatePropagation();
});
$("p").click(function(event){
// This function won't be executed
$(this).css("background-color", "#f00");
});
If event.stopPropagation was used in previous example, then the next
click event on p element which changes the css will fire, but in case event.stopImmediatePropagation(),
the
next p click event will not fire.
38) How to check if number is numeric while using jQuery 1.7+?
Using "<a
href="http://jquerybyexample.blogspot.com/2011/11/jqueryisnumeric-in-jquery-17.html">isNumeric()</a>" function which was introduced with jQuery
1.7.
39) How to check data
type of any variable in jQuery?
40) How do you attach
an event to element which should be executed only once?
Using jQuery one() method. This attaches a handler to an event
for the element. The handler is executed at most once per element. In simple
terms, the attached function will be called only once.
$(document).ready(function() {
$("#btnDummy").one("click", function() {
alert("This will be displayed only once.");
});
});
41) Can you include
multiple version of jQuery? If yes, then how they are executed?
Yes. Multiple versions of jQuery can be included in
same page.
42)
In what situation you would use multiple version of jQuery and how would you
include them?
Well, it is quite possible that the jQuery plugins
which are used are dependent on older version but for your own jQuery code, you
would like to use newer version. So because of this dependency, multiple
version of jQuery may require sometimes on single page.
Below code shows how to include multiple version of jQuery.
Below code shows how to include multiple version of jQuery.
<script type='text/javascript' src='js/jquery_1.9.1.min.js'></script>
<script
type='text/javascript'>
var $jq = jQuery.noConflict();
</script>
<script
type='text/javascript' src='js/jquery_1.7.2.min.js'></script>
By this way, for your own jQuery code use “$jq”,
instead of “$” as “$jq” refers to jQuery 1.9.1, where “$” refers to 1.7.2.
43) Is it possible to
hold or delay document.ready execution for some time?
Yes, its possible. With Release of jQuery 1.6, a
new method "jQuery.holdReady(hold)" was introduced. This method allows to delay
the execution of document.ready() event.
document.ready() event is
called as soon as your DOM is ready but sometimes there is a situation when you
want to load additional JavaScript or some plugins which you have referenced.
$.holdReady(true);
$.getScript("myplugin.js", function() {
$.holdReady(false);
});
44) What is chaining in
jQuery?
Chaining is one of the most powerful feature of
jQuery. In jQuery, Chaining means to connect multiple functions, events on
selectors. It makes your code short and easy to manage and it gives better performance.
The chain starts from left to right. So left most will be called first and so
on.
$(document).ready(function(){
$('#dvContent').addClass('dummy');
$('#dvContent').css('color', 'red');
$('#dvContent').fadeIn('slow');
});
The above jQuery code sample can be re-written
using chaining. See below.
$(document).ready(function(){
$('#dvContent').addClass('dummy')
.css('color', 'red')
.fadeIn('slow');
});
Not only functions or methods, chaining also works
with events in jQuery.
45) How does caching
helps and how to use caching in jQuery?
Caching is an area which can give you awesome
performance, if used properly and at the right place. While using jQuery, you
should also think about caching. For example, if you are using any element in
jQuery more than one time, then you must cache it. See below code.
$("#myID").css("color", "red");
//Doing some other stuff......
$("#myID").text("Error occurred!");
Now in above jQuery code, the element with #myID is
used twice but without caching. So both the times jQuery had to traverse
through DOM and get the element. But if you have saved this in a variable then
you just need to reference the variable. So the better way would be,
var $myElement = $("#myID").css("color", "red");
//Doing some other stuff......
$myElement.text("Error
occurred!");
So
now in this case, jQuery won't need to traverse through the whole DOM tree when
it is used second time. So in jQuery, Caching is like saving the jQuery
selector in a variable. And using the variable reference when required instead
of searching through DOM again.
46)
You get "jquery is not defined" or "$ is not defined"
error. What could be the reason?
There could be many reasons for this.
·
You have forgotten to include the
reference of jQuery library and trying to access jQuery.
·
You have included the reference of
the jQuery file, but it is after your jQuery code.
·
The order of the scripts is not
correct. For example, if you are using any jQuery plugin and you have placed
the reference of the plugin js before the jQuery library then you will face
this error.
47)
How to write browser specific code using jQuery?
Using jQuery.browser property, we can write browser
specific code. This property contains flags for the useragent, read from
navigator.userAgent. This property was removed in jQuery 1.9.
48)
Can we use jQuery to make ajax request?
Yes, jQuery can be
used for making ajax request.
49) What are various methods to make ajax request in jQuery?
Using below jQuery
methods, you can make ajax calls.
·
load() : Load a
piece of html into a container DOM
·
$.getJSON(): Load JSON with GET method.
·
$.getScript(): Load a JavaScript file.
·
$.get(): Use to make a GET
call and play extensively with the response.
·
$.post(): Use to make a
POST call and don't want to load the response to some container DOM.
·
$.ajax(): Use this to do something
on XHR failures, or to specify ajax options (e.g. cache: true) on the fly.
50)
Is there any advantage of using $.ajax() for ajax call against $.get() or
$.post()?
By using jQuery post()/ jQuery get(), you always trust the response from the server and
you believe it is going to be successful all the time. Well, it is certainly
not a good idea to trust the response. As there can be number of reason which
may lead to failure of response.
Where jQuery.ajax() is jQuery's low-level AJAX implementation. $.get and $.post are higher-level abstractions that are often easier to understand and use, but don't offer as much functionality (such as error callbacks).
51)
What are deferred and promise object in jQuery?
Deferred and promise are part of jQuery since
version 1.5 and they help in handling asynchronous functions like Ajax.
52)
Can we execute/run multiple Ajax request simultaneously in jQuery? If yes, then
how?
Yes, it is possible to execute multiple Ajax
request simultaneously or in parallel. Instead of waiting for first ajax
request to complete and then issue the second request is time consuming. The
better approach to speed up things would be to execute multiple ajax request
simultaneously.
Using jQuery .when() method which provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.
Using jQuery .when() method which provides a way to execute callback functions based on one or more objects, usually Deferred objects that represent asynchronous events.
53)
Can you call C# code-behind method using jQuery? If yes,then how?
Yes. We can call C# code-behind function via
$.ajax. But for do that it is compulsory to mark
the method as WebMethod.
54)
Which is the latest version of jQuery library?
The latest version (when this post is written) of
jQuery is 1.10.2 or 2.0.3. jQuery 2.x has the
same API as jQuery 1.x, but does not supportr
Internet Explorer 6,7, or 8.
55)
Does jQuery 2.0 supports IE?
No. jQuery 2.0 has
no support for IE 6, IE 7 and IE 8.
56) What are source maps in jQuery?
In case of jQuery, Source Map is nothing but
mapping of minified version of jQuery against the un-minified version. Source
map allows debugging minified version of jQuery library.
Source map feature was release with jQuery 1.9.
57)
How to use migrate jQuery plugin?
With release of 1.9 version of jQuery, many
deprecated methods were discarded and they are no longer available. But there
are many sites in production which are still using these deprecated features
and it's not possible to replace them overnight. So jQuery team provided with
jQuery Migrate plugin that makes code written prior to 1.9 work with it.
So to use old/deprecated features, all you need to do is to provide reference of jQuery Migrate Plugin.
So to use old/deprecated features, all you need to do is to provide reference of jQuery Migrate Plugin.
58)
Is it possible to get value of multiple CSS properties in single statement?
Well, before jQuery 1.9 release it was not possible
but one of the new feature of jQuery 1.9 was .css()multi-property getter.
var propCollection = $("#dvBox").css([ "width", "height", "backgroundColor" ]);
In this case, the propCollection will
be an array and it will look something like this.
{
width: "100px",
height: "200px",
backgroundColor: "#FF00FF"
}
59)
How do you stop the currently-running animation, remove all queued animations,
and complete all animations for the matched elements?
It can be done via calling .stop([clearQueue ] [, jumpToEnd ]) method
and by passing both
the parameters as true.
60)
What is finish method in jQuery?
The .finish() method stops all queued animations
and places the element(s) in their final state.
This method was introduced in jQuery 1.9.
61) What is the
difference between calling stop(true,true) and finish method?
The .finish() method is similar to .stop(true,
true) in that it clears the queue and the current animation jumps to its end
value. It differs, however, in that .finish() also causes the CSS
property of all queued animations to jump to their
end values, as well.
62)
Consider a scenario where things can be done easily with javascript, would you
still prefer jQuery?
No. If things can be done easily via CSS or
JavaScript then You should not think about jQuery. Remember, jQuery library
always comes with xx kilobyte size and there is no point
of wasting bandwidth.
63)
Can we use protocol less URL while referencing jQuery from CDNs?
Yes. Below code is completely valid.
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
64)
What is the advantage of using protocol
less URL while referencing jQuery from CDNs?
It is quite useful when you are moving from HTTP to
HTTPS url. You need to make sure that correct protocol is used for referencing
jQuery library as pages served via SSL should contain
no references to content served through unencrypted
connections.
"protocol-less" URL is the best way to reference third party content that’s available via both HTTP and HTTPS. When a URL’s protocol is omitted, the browser uses the underlying document’s protocol instead.
65)
What is jQuery plugin and what is the advantage of using plugin?
A plug-in is piece of code written in a standard
JavaScript file. These files provide useful jQuery methods which can be used
along with jQuery library methods. jQuery plugins are quite useful as its piece
of code which is already written by someone and re-usable, which
saves your development time.
66)
What is jQuery UI?
jQuery UI is a curated set of user interface
interactions, effects, widgets, and themes built on top of the jQuery
JavaScript Library that can be used to build interactive web applications.
67)
What is the difference between jQuery and jQuery UI?
jQuery is the core library. jQueryUI is built on top of it. If you use
jQueryUI, you must also include jQuery.
No comments:
Post a Comment