Javascript : get all the object where id is like log_XXXX

Ok, here's a straight JavaScript answer:

// a handy function to aid in filtering:
// takes an array and a function, returns another array containing
// only those elements for which f() returns true
function filter(a, f) 
{ 
  var ret = []; 
  for (var i=0; i<a.length; ++i) 
  {
    if ( f(a[i]) ) 
      ret.push(a[i]); 
  }
  return ret;
}

// this collects all elements in the current document
var elements = document.getElementsByTagName("*");

// and this filters out all but those that match our pattern
var logElements = filter(elements, function(el) 
  { return /log_/.test(el.id) } ); // simple expression

Current Browsers:

// DOM collection as proper array
const matches = Array.from(document.querySelectorAll('[id^=log_]'));

Older Browsers: (IE9+)

// Use Array.prototype.slice to turn the DOM collection into a proper array
var matches = [].slice.call(document.querySelectorAll('[id^=log_]'));

jQuery:

$('[id^=log_]')

Really Old Browsers, no jQuery:

var matches = [];
var elems = document.getElementsByTagName("*");
for (var i=0; i<elems.length; i++) {
  if (elems[i].id.indexOf("log_") == 0)
    matches.push(elems[i]);
}
//matches now is an array of all matching elements.

Tags:

Javascript