Ho ripescato dalla rete questo script, che permette di prendere un elemento dal valore di un attributo.
Ad esempio:

getElementsByAttribute(document, "*", "title", "mio titolo");

prende tutti i tag della pagina che hanno title impostato a "mio titolo".


Però non sono riuscito a capire come modificare le proprietà di questi elementi...
Ho provato così ma non va:

getElementsByAttribute(document, "*", "title", "mio titolo")[0].setAttribute("href", "http://www.html.it");

Posto il codice dello script

codice:
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}
// ---
if(typeof Array.prototype.push != "function"){
	Array.prototype.push = ArrayPush;
	function ArrayPush(value){
		this[this.length] = value;
	}
}
// ---
e un file html per provare

codice:
<html>
<head>
<script src="getElementsByAttribute.js" type="text/javascript"></script>
<script type="text/javascript">
mmmvar=new Array();
getElementsByAttribute(document, "*", "title", "mio titolo")[0].setAttribute("href", "http://www.html.it");
</script>
</head>
<body>
aaa
abc
</body>
</html>