Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 405
  • Last Modified:

Rewriting 3 Simple Utility Functions in jQuery

Hi All,

I'm using jQuery in a new project and wanted to re-write 3 simple utility functions using jQuery.

1. I have a handy function that I use everywhere called "isDef(arg, argType)" which checks if the argument is null or undefined, (or if "argType" is defined, is of type "argType"). Could you rewrite this using jQuery for me please?

2. I have another handy function called "el(id)" which is an exception-safe wrapper for "getElementById". Could you also rewrite this using jQuery for me please?

3. And lastly I have another handy function called "findParent(elem, type, id)" which finds the nearest parent element of elem which of the specified type and (if defined), has the specified "id". Could you also rewrite this using jQuery for me please?

I have included my orginal code for these 3 functions below:

Thanks in Advance.



// MY ORIGINAL CODE

function isDef(arg, argtype)
{
 try
 {
  if (argtype === null || typeof(argtype) == 'undefined') return (arg !== null && typeof(arg) != 'undefined');
  return (arg !== null && typeof(arg) == argtype);  }  catch (e) {}  return false; }

function el(id)
{
 try
 {
  if (!isDef(id, 'string') || id == '') return null;
  return document.getElementById(id);
 }
 catch(e) {}

 return null;
}

function findParent(elem, type, id)
{
 try
 {
  if (!isDef(elem) || !isDef(type, 'string') || type == '') return null;
  if (!isDef(id)) id = '';

  type = type.toUpperCase();

 var parent = (elem.parentNode ? elem.parentNode : (elem.parent ? elem.parent : NULL));
  while (isDef(parent) && (parent.nodeType != 1 || (parent.nodeName.toUpperCase() != type && (id == '' || id != parent.id))))
   parent = (parent.parentNode ? parent.parentNode : (parent.parent ? parent.parent : NULL));  // Select the parent of the specified type by iterating up the ancestor hiearchy
 
 if (isDef(parent)) return parent;
 }
 catch(e) {}

 return null;
}

Open in new window

0
NetSoftDS
Asked:
NetSoftDS
1 Solution
 
Michel PlungjanIT ExpertCommented:
el() = $()


0
 
David S.Commented:
jQuery is a JavaScript library, not a separate language, so there isn't always a reason to rewrite other utility functions you use to use it.  There's no need to rewrite your isDef() function.

As Michel said, $() will work in place of el(), except you would need to use "#" at the beginning of a string passed to it, if you wanted to use an ID. (Many other selectors can be used in addition to just IDs: http://api.jquery.com/category/selectors/ )

For the findParent() function, I would suggest not using it all and just use jQuery, otherwise you'd lose the ability to use jQuery's "chaining" feature.

In jQuery to get the...

parent:
  $('selector').parent()

first ancestor of a certain type:
  $('selector').parents('ul').eq(0)

ancestor with a certain ID:
  $('selector').parents('#someID').eq(0)
0
 
NetSoftDSAuthor Commented:
Thanks
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now