find image orientation in jquery?

I'm currently using

I'm currently using

jQuery(document).ready(function() {
jQuery("img").each(function() {

    // Calculate aspect ratio and store it in HTML data- attribute
    var aspectRatio = jQuery(this).width()/jQuery(this).height();
    jQuery(this).data("aspect-ratio", aspectRatio);
           // Conditional statement

    if(aspectRatio > 1) {
        // Image is landscape

        jQuery( this ).addClass( "landscape" );

    } else if (aspectRatio < 1) {
        // Image is portrait
        jQuery( this ).addClass( "portrait" );;
    } else {
        // Image is square
        jQuery( this ).addClass( "square" );;            
    }
});

});

but it's just returning landscape every time.

All I want to do is have a class for portrait images so I can use CSS to make them 50% width and side-by-side, whilst the landscape images are 100% width.


Understand and Use JavaScript's .forEach() vs. jQuery's .each()

Understand and Use JavaScript's .forEach() vs. jQuery's .each()

There are two functions to deal with an array on the client-side – JavaScript's .forEach() and jQuery's .each(). Here, I will teach you how to use both of these methods with some sample code.

Your knowledge of JavaScript and jQuery is incomplete if you don't know how to loop with .forEach() and .each() methods. This tutorial helps you to quickly master JavaScript .forEach() & jQuery .each() in 2 minute time.

There are two methods to deal with an array on client-side – JavaScript .forEach() and jQuery .each(). Here, I will teach you how to use both of these methods in different scenarios.

Defination of these 2 methods

a. JavaScript .forEach() Method

The .forEach() method of JavaScript executes a given function once for each element of the array.

For example -

var arr = ['a', 'b', 'c'];    
arr.forEach(function(element) {  
    console.log(element);  
});  

The above JavaScript code will print – ‘a’, ‘b’, & ‘c’ in the console window.

b. jQuery .each() Method

jQuery has it’s own method called jQuery Each method and it is used to loop over arrays, array of object and matched elements of the DOM. See the below code:

var arr = ['a', 'b', 'c'];  
$.each(arr , function (index, value){  
  console.log(arr);   
});  

The above jQuery code will print – ‘a’, ‘b’, & ‘c’ in the console window.

Looping through DOM elements

a. JavaScript .forEach() Method

Suppose you want to extract all the anchor tags from the web page, and then loop through each of them. In that case first you have to get all the anchors using document.getElementsByTagName("a") and then convert it into an array. This is because JavaScript .forEach() method loops only through an array.

See the below code:

var links = document.getElementsByTagName("a");    
var Arr = Array.from(links);    
Arr.forEach(someFunction);    
    
function someFunction(currentValue) {    
    console.log(currentValue);    
}    

I used Array.from() method to convert to an array.

b. jQuery .each() Method

In case of .each() method you simply loop through all the anchor tags, like shown in the below code, as jQuery Each method can loop through arrays, array of objects and matched element of the DOM. So you don’t have to do the conversion to an array like JavaScript .forEach() method.

See the below code:

$("a").each(function (index, value) {   
  console.log($(this).attr("href"));   
});  

Clearly you can see in this case the lines of codes are very less than compared to .forEach() method of JavaScript.

Which one you should choose?

Case 1: DOM Manipulations

When working with DOM elements the jQuery Each method has a great advantage because it removes a lot of code lines. So prefer this method during DOM manipulations.

Case 2: Website is using jQuery from before

If your website is already using jQuery then you should use jQuery Each method because this will bring code consistency in your project.

In all other cases use JavaScript .forEach() method.

Conclusion

Both of these above methods are very good and they make the codes easy to understand. I would recommend every web developer to know both of these methods.

Thank you for reading.

3 JavaScript libraries to replace jQuery

3 JavaScript libraries to replace jQuery

Ubiquitous jQuery has been outmoded by JavaScript and browser advances. Cash, Zepto, and Syncfusion are three JavaScript libraries picking up where jQuery left off

Simplifying tasks such as HTML document traversal, animation, and event handling, the stalwart jQuery JavaScript library changed the face of web development. As of May 2019, **jQuery **is still being used in 74 percent of known websites, according to web technology surveyor W3Techs. Nevertheless, the jQuery library, which debuted in August 2006, is now being viewed by some developers as an older technology whose time has passed.

Alternatives to **jQuery **have emerged in recent years, such as the Cash library or even just modern, vanilla JavaScript, now that web browsers all handle **JavaScript libraries **the same way and jQuery is no longer needed to solve compatibility issues. Arguments on Reddit and videos on YouTube make the case that jQuery has become obsolete, or at least is not as essential as it once was.

Why jQuery is no longer needed

In one YouTube presentation, “Is jQuery still relevant in 2018?,” web development educator Brad Traversy acknowledges that jQuery is probably the best generalized JavaScript library ever created. It is easy to learn, cross-browser compatible, more concise than older vanilla JavaScript, and rich in plug-ins offering specific functionality. But JavaScript has advanced far since ECMAScript 6, and jQuery is no longer needed in many situations, Traversy concludes.

In another video, coding educator Kenneth Lowrey argues that becoming fluent in jQuery is a waste of time. In the current web development landscape, modern browsers handle JavaScript the same, for the most part. In most cases, native JavaScript code is better than a “bloated legacy library like jQuery,” he says.

While jQuery had been the choice for making HTTP requests, for example, ECMAScript 6 brought forth Fetch, a promised-based API that makes HTTP requests easier. And the advancement does not stop with HTTP. Where jQuery has utilities for tasks such as manipulating arrays, vanilla JavaScript now has improved accommodations for these operations, too.

Animations are still more difficult with vanilla JavaScript than jQuery, but there are other options such as CSS transitions or keyframes, Traversy points out. The third-party GreenSock library also can be used for animations. For DOM manipulation, a task once ruled by jQuery, native browser APIs have closed the gap.

For tasks that cannot be done in vanilla JavaScript, Traversy recommends specialized libraries, instead of a generalized library like jQuery. Traversy also recommends using JavaScript frameworks such as React, Angular, or Vue for mid-size and large applications. Traversy still recommends jQuery for use on simple sites with no framework.

jQuery alternatives

What should you use instead of jQuery? Besides modern, vanilla JavaScript, a short list of jQuery alternatives includes Cash, Zepto, and Syncfusion Essential JS 2. Cash and Zepto are open source JavaScript libraries available under an MIT license. Syncfusion Essential JS 2 is a commercial product.

Cash

Cash has more than 3,570 stars on GitHub. Billed as an “absurdly small jQuery alternative” for modern browsers, Cash has a jQuery-style syntax for manipulating the DOM and takes up 32KB of space, uncompressed. Cash supports capabilities including namespaced events, TypeScript types, and modern builds. You can download Cash from GitHub.

Zepto

Zepto is described as “a minimalist **JavaScript library **with a largely jQuery-compatible API.” Developers who know jQuery already know how to use Zepto, its makers go on to say. Zepto purports to be much smaller and faster-loading than jQuery, and can work with the PhoneGap toolset for mobile and desktop browsers. You can download Zepto from the project website.

Syncfusion Essential JS 2

Syncfusion Essential JS 2 is a commercially licensed JavaScript UI controls library written in TypeScript. Serving as an alternative to the jQuery UI library, Syncfusion is designed to be a low-overhead, lightweight, and modular library to improve web applications. Syncfusion supports frameworks including Angular, React, and Vue. You can purchase Syncfusion Essential JS 2 or download a free trial from the Syncfusion website. Complete source code, unit test files, test scripts, and live demos are available on GitHub.

What the difference between JavaScript vs jQuery

What the difference between JavaScript vs jQuery

In this article we are going to discuss JavaScript and JQuery, however, in order to use JQuery, you should know JavaScript. We will also discuss which is the better one to use?

This article is mainly for those developers who are new to web development. People who start their career usually question - why jQuery while there is JavaScript; or the difference between JavaScript and jQuery; which is better to use - JavaScript or jQuery; is jQuery an alternative for JavaScript; or will jQuery replace JavaScript etc.

Let us first look at what is JavaScript and what is jQuery.

What is JavaScript

JavaScript (JS) is a dynamic programming language. It is an interpreted language. Other than the unfortunate similarity in name, it has nothing to do with Java programming language. As the name suggests, JavaScript is a scripting language.

It is most commonly used for appealing UI (like moving objects, flashy elements in the screen), user interactions (client-side validation, showing pop-up etc.) and for controlling the document content displayed to the user.

There is nothing you need to include in the browser to support JavaScript. This is because it was considered as the language of the web since its birth. It runs in all modern browsers without any additional plugins.

What you mean by JavaScript is dynamic

Most programming languages have dynamic behaviors. But in the case of JavaScript, pretty much everything is dynamic.

All variables are dynamic in type and existence. You declare a variable as,

var msg = "Hello World!";  

The code written in JavaScript is dynamic, you can create a variable at runtime, and the type is determined at runtime.

You can create new functions or replace existing functions at runtime.

New codes are added to the browser when more script files are loaded and you can add any number of files at any time.

What is jQuery

jQuery website defines jQuery (jQ) as “jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.”.

jQuery is not a programming language instead it is a cross-platform JavaScript library. There are many other JavaScript libraries available like MooTools, Knockout or even Angular (Though Angular uses TypeScript, it compiles to JavaScript at the end) and jQuery is one of the most popular among them.

jQuery is a fast feature-rich JavaScript library. It is created to help programmers with creating common UI and take care of the browser compatibility issues more easily.

jQuery, in fact, is nothing but JavaScript. All the code you write in jQuery is converted to JavaScript internally. One line of code written using jQuery may be equal to many lines of code written using JavaScript which means programmers will have to write only lesser lines of code.

To start using jQuery on your page, you need to include one line of code in the header of your page like,

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script > 

The above line includes a jQuery library to your page using the Microsoft CDN (Content Delivery Network). The jQuery library is a single JavaScript file.

You can also include the jQuery library as a local resource from your project folder.

But there are benefits using the CDN. If you use the minified version of the library, you will get the advantage of concurrent connections and multiple servers.

JavaScript Vs jQuery

Now, we can discuss the questions mentioned at the beginning of this article. Most of those questions may arise because of the lack of clear understanding of JavaScript and jQuery.

Since jQuery is nothing but a library of JavaScript, it cannot replace JavaScript. All jQuery code is JavaScript, but jQuery doesn’t include all the JavaScript code.

One thing you should understand is that they are not two programming languages; instead, they both are JavaScript. jQuery is just optimized to do the common scripting functions with fewer lines of code.

Lines of code

Many actions like Animate, Delay, Fade-In can be done using jQuery with very few lines of code. On the other hand, JavaScript will take lots of lines of code for the same.

We can consider a simpler example,

Suppose I want to select all elements having class- simple-li,

If I use JavaScript,

document.getElementsByClassName("simple-li");  

On the other hand, if I use jQuery,

$('simple-li') 

Performance

If you check the performance of the two, you can find that plain JavaScript is faster than jQuery for accessing DOM. But JavaScript can be slower when you write some complex logic given the fact that we may make major mistakes or use poor code which may lead to a performance hit. On the other hand, jQuery has been tested for years to use best and fast JavaScript codes.

In my view, it is not right to compare the two or you cannot say one is better than the other. We need to use whichever is better suited to our requirement.

A few points to remember

Advantages of jQuery
  • You can code most common JS actions using jQuery with fewer lines of code.
  • Browser compatibility – you can write code which runs across browsers without having to know the various browser intricacies and won’t break.
  • Lets you write JavaScript quicker and easier.
  • Avoids common browser errors
  • Simplification of usually complicated operations – complex operations like Ajax interactions, animation, event handling etc. are handled by jQ with the best lines of code.
  • jQ is battle tested and uses the fast and best lines of code for accomplishing most tasks.
Conclusion

In short, we can say that for rapid web development it is good to use JQuery, as it also takes care of common browser errors and through its ready to use library functions things gets faster. Though it totally depends on your need to choose any one of them, still most of the web development projects work fine with JQuery rather than JavaScript. For initial product versions, you can start with JQuery as debugging time will also get reduced, while later you can switch to JavaScript.

jQuery is well suited for most applications, especially ones which need rapid development. jQuery takes care of the common browser errors by ironing the fixes right into the library. jQuery also takes care of browser compatibility issue which is a developer’s nightmare during deployment.

Using JavaScript or jQuery really depends on your need and other factors. Most of the web development projects will work perfectly fine using jQuery. But there will be a small percentage that does require JavaScript.

Since pure JavaScript is the best performing method of client-side development, there is a reason to use it. But a library like jQuery will help you to get to market faster and cheaper. So, it is  better to depend heavily on jQuery for the initial versions of your product. Once your product is established in the marked and you have got the revenues to go back and refactor the code, you can go ahead and custom code all the script.

Thank you for reading!