guarda se può servire :master:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Pagina senza titolo</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function Button1_onclick()
{
var a = getElements(null, "select", "select-one");
var s = "";
for(var i = 0; i < a.length; i++)
{
var v = a[i];
s += "tagName = " + v.tagName + ", type = " + v.type + ", id = " + v.id + "\n";
}
alert(s);
}
function Button2_onclick()
{
var a = getElements("div1", "select", "select-one");
var s = "";
for(var i = 0; i < a.length; i++)
{
var v = a[i];
s += "tagName = " + v.tagName + ", type = " + v.type + ", id = " + v.id + "\n";
}
alert(s);
}
/*--------------------------------------------------------------------------
trova gli elementi che soddisfano il criterio in un vettore:
source: contenitore o id contenitore. se null = body
tagName: se null = "*"
type: se null non ne tengo conto
idSearch: se valorizzato, tutti gli elementi con id che inizia con idSearch
flagSeach: se valorizzato, 1 -> id inizia per idSearch
2 -> id contiene idSearch
3 -> id termina con idSearch
----------------------------------------------------------------------------*/
function getElements(source, tagName, type, idSearch, flagSeach)
{
var v = [];
var result = getTypeParameter(source);
if(result == 0)
source = document.body;
else if(result == 2)
source = document.getElementById(source);
else if(result == 4)
source = source;
else
return v;
tagName = (tagName == undefined)? "*" : tagName;
type = (type == undefined)? "" : type;
idSearch = (idSearch == undefined)? "" : idSearch;
flagSeach = (flagSeach == undefined)? 1 : flagSeach;
var elementi = source.getElementsByTagName(tagName);
var n = elementi.length;
for(var i = 0; i < n; i++)
{
var elemento = elementi[i];
if( (elemento.type != undefined && elemento.type.toLowerCase() == type.toLowerCase() ) || (type == "") )
{
if( (elemento.id != undefined) && ( ((flagSeach == 1 && elemento.id.indexOf(idSearch, 0) == 0) || idSearch == "") || ((flagSeach == 2 && elemento.id.indexOf(idSearch, 0) >= 0) || idSearch == "") || ((flagSeach == 3 && elemento.id.indexOf(idSearch, 0) == (elemento.id.length - idSearch.length) ) || idSearch == "") ) )
{
v[v.length] = elemento;
}
}
}
return v;
}
/*----------------------------------------------------------
Restituisce il tipo di parametro ricevuto
0 -> indefinito
1 -> funzione
2 -> id oggetto che supporta innerHTML
3 -> id oggetto che supporta value
4 -> oggetto che supporta innerHTML
5 -> oggetto che supporta value
6 -> vettore
-----------------------------------------------------------*/
function getTypeParameter(v)
{
if(typeof(v) == "undefined")
{
//alert("undefined");
return 0;
}
else if(typeof(v) == "function")
{
//alert("funzione");
return 1;
}
else if(typeof(v) == "string")
{
if(document.getElementById(v) != undefined)
{
if(document.getElementById(v).value != undefined)
{
//alert(" id value");
return 3;
}
else if(document.getElementById(v).innerHTML != undefined)
{
//alert("id innerHTML");
return 2;
}
}
else return 0;
}
else if(typeof(v) == "object")
{
if(v == null)
{
//alert("null");
return 0;
}
else
{
if(v.length != undefined)
{
//alert("vettore");
return 6;
}
else
{
if(v.value != undefined)
{
//alert(" oggetto value");
return 5;
}
else if(v.innerHTML != undefined)
{
//alert("oggetto innerHTML");
return 4;
}
}
}
}
//indefinito o altro
return 0;
}
// ]]>
</script>
</head>
<body>
<select id="Select1"><option></option></select>
<select id="Select2"><option></option></select>
<div id="div1">
<select id="Select3"><option></option></select>
<select id="Select4" multiple="multiple"><option></option></select>
</div>
<input id="Button1" type="button" value="Tutti i DropDown" onclick="return Button1_onclick()" />
<input id="Button2" type="button" value="Solo i DropDown di div1" onclick="return Button2_onclick()" />
</body>
</html>