@ThiefMaster se refirió a cómo se puede hacer el registro de entrada, pero aquí está el código real:
function idEndsWith(str)
{
if (document.querySelectorAll)
{
return document.querySelectorAll('[id$="'+str+'"]');
}
else
{
var all,
elements = [],
i,
len,
regex;
all = document.getElementsByTagName('*');
len = all.length;
regex = new RegExp(str+'$');
for (i = 0; i < len; i++)
{
if (regex.test(all[i].id))
{
elements.push(all[i]);
}
}
return elements;
}
}
Esto se puede mejorar en una serie de formas. En la actualidad itera por el Reino toda, pero sería más eficiente si tenía un contexto:
function idEndsWith(str, context)
{
if (!context)
{
context = document;
}
...CODE... //replace all occurrences of "document" with "context"
}
No hay ninguna validación/escapar de la variable str
en esta función, el supuesto es que sólo va recibir una cadena de caracteres.
¿Puede proporcionar más información? ¿A qué tipo de elementos dom estás apuntando? ¿Es solo DIVs y SPANs o algo? – DhruvPathak
Por lo que puedo decir, todas son etiquetas de entrada, pero la consulta anterior no especifica eso. Estoy volviendo a trabajar en una biblioteca existente, por lo que no puedo estar completamente seguro. –