Giter Site home page Giter Site logo

min.js's Introduction

min.js

A tiny JQuery syntax inspired library for querying, events and some simple DOM manipulation. This is a fork of Remy Sharp's min.js which is no longer being maintained.

Build Status

Query elements

var links = $('p:first-child a');

If there is more than one link, the return value is NodeList, if there's only a single match, you have an Element object. So you need to have an idea of what to expect if you want to modify the DOM.

Class Manipulation

Add Class

$('p:first-child a').addClass('first');

Remove Class

$('p:first-child a').removeClass('first');

Toggle Class

$('p:first-child a').toggleClass('first');

Has Class

$('p:first-child a').hasClass('first');

Attribute Manipulation

Add/Edit Attribute

$('a').attr('href','index.html');

Read Attribute

$('input').attr('value');

Read / Edit single results

$('a#some-place').href = '/some-place.html';
var link = $('a#some-place').href;

Inserting HTML

Before

$('div#title').before(html);

After

$('div#title').after(html);

Inner

This is just the native javascript function innerHTML.

$('div#title').innerHTML = html;

Events

Bind events

$('p:first-child a').on('click', function (event) {
  event.preventDefault();
  // do something else
});

Note: the on and trigger methods are on both Node objects and NodeList objects, which also means this affects the document node, so document.on(type, callback) will also work.

Custom events

$('a').on('foo', function () {
  // foo was fired
});

$('a:first-child').trigger('foo');

Arbitrary events / pubsub

$.on('foo', function () {
  // foo was fired, but doesn't require a selector
});

Turning off events?

Current min.js has no support for turning off events (beyond .removeEventListener -- but even then you don't have the reference function to work with).

Looping

$('p').forEach(function (el, index) {
  console.log(el.innerHTML);
});

Note: jQuery-like libraries tend to make the context this the element. Since we're borrowing forEach from the array object, this does not refer to the element.

Chaining events

$('a').on('foo', bar).on('click', doclick).trigger('foobar');

Silent failing

Like jQuery, this tiny library silently fails when it doesn't match any elements. As you might expect.

More info

min.js's People

Contributors

remy avatar stijnbuurman avatar jtangelder avatar stephenplusplus avatar andyburke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.