-
Notifications
You must be signed in to change notification settings - Fork 2
jQuery plugin to allow for selector chain debug
fmsf/jQueryLog
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
How to use it:
Simply place the jquery.log.js bellow your jquery file. And call $.log(true) or $.log(false) whenever you want to activate/deactivate the logging system.
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="jquery.log.js"></script>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I'm trying to do a "smart" logging system. Meaning that I want this to simplfy my life when developing javascript with jQuery, not complicate it. So I've tried to keep it simple.
$.log(true); // starts the logging system
$("#foo").parents(".t1").next().prev().parent().find(".t2:last .t4:last").text("test");
$.log(false); // ends the logging system
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The results will be something like this: (the objects are clickable inside the console)
$('#foo'): [<div id="foo" class="t3"></div>]
parents('.t1'): [ <div class="t1">…</div> ]
next(undefined): [ <div class="t1">…</div> ]
prev(undefined): [ <div class="t1">…</div> ]
parent(undefined): [ <body>…</body> ]
find('.t2:last .t4:last'): [<div class="t4">teste</div>]
This has been tested against the official jQuery unit tests and it currently passes all except the "(6.3) core no conflict $" (which means if you use some other lib that overwrites $, it won't work with jquery log). I'll address this issue later, but most users shouldn't be affected by it.
I've had a discussion with Prinzhorn when I released the first version of this and meanwhile he made his own, which is also cool, you can find it at: https://github.com/Prinzhorn/jquery-inlog/
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The jquery unit tests output the following supported functions:
add('#ap');
add('#en');
add('#sap');
add('#select4 > [clickable object]disabled');
add('#sndp');
add('#unwrap2 span;first');
add('<div/>');
add('<p id='x1'>xxx</p>');
add('<p id='x2'>xxx</p>');
add([clickable object]);
add(undefined);
children('#en, #sap');
children(';first');
children(';has(code)');
children('div');
children('span');
children(undefined);
contents(undefined);
contains( [clickable object] , this );
contains( this, [clickable object] );
filter('#ap, #sndp');
filter('#ap,#sndp');
filter('#posp a;eq(0)');
filter('#posp a;eq(9)');
filter('#posp a;even');
filter('#posp a;first');
filter('#posp a;gt(0)');
filter('#posp a;last');
filter('#posp a;last-child');
filter('#posp a;lt(1)');
filter('#posp a;lt(5)');
filter('#posp a;odd');
filter('#posp em;eq(0)');
filter('#posp em;first');
filter('#posp;eq(2)');
filter('#posp;first');
filter('');
filter(';checked');
filter(';hidden');
filter('[clickable object]name');
filter('b');
filter('div');
filter('input');
filter('input,select');
filter('span');
filter(0);
filter([clickable object]);
filter(function () {
filter(function () { return !jQuery("a", this).length });
filter(function (){
filter(function (i, elem) { return !jQuery("a", elem).length });
filter(null);
filter(undefined);
find(' div.user');
find('#absolute-1');
find('#ap *');
find('#ap > a');
find('#ap a');
find('#ap');
find('#ap, #sndp, .result');
find('#appendSelect1, #appendSelect2');
find('#area1, #hidden1');
find('#bar');
find('#cssFunctionTest div');
find('#dl;visible, #qunit-fixture;visible, #foo;visible');
find('#en, #sndp');
find('#fadein div');
find('#fadeout div');
find('#fadeto div');
find('#fadetogglein div');
find('#fadetoggleout div');
find('#firstp a;first');
find('#firstp,#first');
find('#foo p');
find('#foo select');
find('#foo span');
find('#foo');
find('#form ;input');
find('#form ;radio');
find('#form ;text');
find('#form input');
find('#form input;first');
find('#form option');
find('#form select');
find('#form, #testForm');
find('#get');
find('#groups, #ap');
find('#hide div');
find('#html5email, #html5number');
find('#label-for, #hidden1');
find('#listWithTabIndex li');
find('#listWithTabIndex li.test6997');
find('#mark, #first');
find('#moretests div');
find('#moretests div;last');
find('#myform');
find('#nonnodes > i');
find('#nothiddendiv div');
find('#nothiddendiv span');
find('#nothiddendiv, #nothiddendivchild');
find('#onandoff b');
find('#posp .firsta');
find('#posp .seconda');
find('#posp a em;eq(2)');
find('#posp a em;last');
find('#posp a;eq(0) em');
find('#posp a;eq(0)');
find('#posp a;eq(9)');
find('#posp a;even');
find('#posp a;first em');
find('#posp a;first');
find('#posp a;gt(0)');
find('#posp a;gt(1) em');
find('#posp a;last');
find('#posp a;lt(1) em');
find('#posp a;lt(1)');
find('#posp a;lt(5)');
find('#posp a;odd');
find('#posp em');
find('#posp em;eq(0)');
find('#posp em;first');
find('#posp;eq(2)');
find('#posp;first');
find('#post');
find('#prependSelect2, #prependSelect1');
find('#qunit-fixture > div');
find('#qunit-fixture > p#ap > a');
find('#qunit-fixture div');
find('#qunit-fixture div;last');
find('#qunit-fixture p');
find('#qunit-fixture select');
find('#qunit-fixture table;first');
find('#qunit-fixture');
find('#qunit-fixture, #header');
find('#qunit-fixture, #moretests');
find('#radio1,#radio2,#check1,#check2');
find('#sap>form');
find('#select1 option;last');
find('#select1 option;not(;first)');
find('#select4 > [clickable object]disabled');
find('#select4 optgroup');
find('#show div');
find('#show-tests span');
find('#slidedown div');
find('#slidetogglein div');
find('#slidetoggleout div');
find('#slideup div');
find('#sndp, #en');
find('#sndp, #first');
find('#svg-by-id, .svg-by-class');
find('#t2037 .hidden');
find('#table caption');
find('#table colgroup col');
find('#table colgroup');
find('#table td;visible');
find('#testForm ;input');
find('#testForm button[clickable object]name=sub4');
find('#testForm input[clickable object]name=sub1');
find('#testForm');
find('#text1, #hidden1');
find('#togglein div');
find('#toggleout div');
find('#unwrap > span');
find('#unwrap > span.unwrap3');
find('#unwrap span');
find('#unwrap1 > span, #unwrap2 > span');
find('#unwrap1 span');
find('#unwrap2 span;first');
find('#unwrap3 > span');
find('#unwrap3 span');
find('#yahoo, #first');
find('*');
find('.blog');
find('.blog.link');
find('.blogTest');
find('.devo');
find('.devo-like');
find('.link');
find('.replacewith');
find('.test8070');
find(';checkbox;first');
find(';checkbox;last');
find(';radio;first');
find(';radio;last');
find('> #foo > p');
find('> #foo, > #moretests');
find('> div');
find('[clickable object]lang="de"');
find('[clickable object]lang="en"');
find('[clickable object]type="radio"');
find('[clickable object]type="text"');
find('a');
find('a.test6997');
find('a.test;first');
find('a;first');
find('article');
find('asdf');
find('aside');
find('b');
find('blah');
find('body > span.unwrap');
find('body');
find('body, #nothiddendivchild');
find('body;first div;last');
find('button');
find('calculation');
find('code');
find('div p');
find('div#nothiddendiv');
find('div#nothiddendivchild');
find('div');
find('div.hidden');
find('div;eq(1)');
find('div;first');
find('div;has(p)');
find('div;has(ul)');
find('div;last');
find('div[clickable object]id=replaceWith');
find('em');
find('form input[clickable object]name=radiotest');
find('form');
find('form;last');
find('head');
find('html');
find('html, body');
find('html, body, #qunit-fixture');
find('html>*');
find('input');
find('input;checked');
find('input;disabled');
find('input;radio[clickable object]name='R1'');
find('input[clickable object]name=arrayTest');
find('input[clickable object]type='radio'');
find('jsconf');
find('li');
find('location');
find('locations');
find('math');
find('option');
find('option;first-child');
find('option;last-child');
find('option;selected');
find('p');
find('pre');
find('properties');
find('result');
find('script');
find('script[clickable object]src*="data\/test\.js"');
find('section');
find('select[clickable object]name='S1'');
find('span#liveSpan1 a');
find('span#liveSpan1');
find('span#liveSpan2 a');
find('span#liveSpan2');
find('span');
find('spanx');
find('tab');
find('table');
find('table;last');
find('tbody');
find('td');
find('td;first');
find('textarea');
find('th');
find('thead');
find('thing');
find('tr');
find('u');
find('ul');
find([clickable object]);
has('#sndp');
has('#sndp, #first');
has([clickable object]);
has(undefined);
index('#form ;radio');
index('#form ;text');
index([clickable object]);
index(undefined);
is('#ap');
is('#area1');
is('#area1, #radio1');
is('#button');
is('#empty');
is('#firstp a;first');
is('#html');
is('#html, #body');
is('#nothiddendiv div');
is('#nothiddendiv');
is('#nothiddendivchild');
is('#posp a em;eq(2)');
is('#posp a em;last');
is('#posp a;eq(0) em');
is('#posp a;eq(0)');
is('#posp a;eq(9)');
is('#posp a;even');
is('#posp a;first em');
is('#posp a;first');
is('#posp a;gt(0)');
is('#posp a;gt(1) em');
is('#posp a;last');
is('#posp a;lt(1) em');
is('#posp a;lt(1)');
is('#posp a;lt(5)');
is('#posp a;odd');
is('#posp em;eq(0)');
is('#posp em;first');
is('#posp;eq(2)');
is('#posp;first');
is('#select1 option;not(;first)');
is('#testForm input[clickable object]name=sub1');
is('#text2');
is('');
is('.blog');
is('.blog.link');
is('.blogTest');
is('.class1');
is('.class2');
is('.class4');
is('.foo');
is('.link');
is('.red');
is('.test');
is('.test,.bar,.foo');
is('.testA');
is('.testA.testB');
is('.testA.testC');
is('.testB');
is('.testC');
is('.testD.testE');
is('.wrapper');
is(';checked');
is(';disabled');
is(';has(p)');
is(';has(p);has(a);has(code)');
is(';has(p);has(a);has(code);has(ol)');
is(';has(ul)');
is(';hidden');
is(';visible');
is('[clickable object]class=foo');
is('[clickable object]lang="de" , [clickable object]lang="en"');
is('[clickable object]lang="de"');
is('[clickable object]lang="de",[clickable object]lang="en"');
is('[clickable object]lang="en" , [clickable object]lang="de"');
is('[clickable object]lang="en"');
is('[clickable object]lang="en",[clickable object]lang="de"');
is('[clickable object]type="radio"');
is('[clickable object]type="text"');
is('a');
is('body');
is('div');
is('form');
is('html');
is('label');
is('label, #search');
is('ol');
is('select[clickable object]name='S1'');
is('span#liveSpan1 a');
is('span#liveSpan2 a');
is('span');
is('span,#html');
is(0);
is([clickable object]
is([clickable object]);
is(null);
is(undefined);
next('div');
next('div, p');
next('p');
next(undefined);
nextAll('input');
nextAll('input,select');
nextAll(undefined);
nextUntil('#area1');
nextUntil('#area1, #radio1');
nextUntil('#text2');
nextUntil('.foo');
nextUntil('[clickable object]class=foo');
nextUntil(undefined);
not('#ap, #sndp, .result');
not('#google');
not('#mark, code');
not('');
not('.result');
not(';first');
not(';last');
not('button');
not('code');
not('code, #mark');
not('div');
not('input');
not('option.emptyopt;contains('Nothing'),[clickable object]selected,[clickable object]value='1'');
not(0);
not([clickable object]);
not(function () { return jQuery("a", this).length });
not(null);
not(undefined);
parent('aside');
parent('body');
parent('div');
parent('div, p');
parent('p');
parent(undefined);
parents('div');
parents('p');
parents('p, div');
parents(undefined);
parentsUntil('#ap');
parentsUntil('#html');
parentsUntil('#html, #body');
parentsUntil('.foo');
parentsUntil(undefined);
prev('div');
prev('p');
prev('p, div');
prev(undefined);
prevAll('input');
prevAll('input,select');
prevAll(undefined);
prevUntil('#button');
prevUntil('.foo');
prevUntil('label');
prevUntil('label, #search');
prevUntil(undefined);
siblings(';has(a)');
siblings(';has(code)');
siblings('form, b');
siblings('option[clickable object]data-attr');
siblings(undefined);
```About
jQuery plugin to allow for selector chain debug
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published