Просто интересно, почему ты не делаешь следующее?
var returnVal;
if(document.getElementById("test1"))
returnVal = document.getElementById("test1").innerHTML;
else if (document.getElementById("test2"))
returnVal = document.getElementById("test2").innerHTML;
else
returnVal = "no value found";
Но все же, если вы захотите, чтобы с помощью регулярных выражений возможно нечто подобное:
var divs = document.body.innerHTML, returnVal = "", ids = new Array();
ids.push("test1");
ids.push("test2");
for (var i = 0; i < ids.length; i++) {
var toBeFound = "<div(.*?)id=(\"|\')" + ids[i] + "(\"|\')(.*?)>";
var newRegex = new RegExp(toBeFound, "i");
var match = divs.match(newRegex);
if (match.length > 0) {
returnVal += document.getElementById(ids[i]).innerHTML + ",";
}
}
Этот код сканирует весь документ. Для каждого идентификатора, предоставленного в массиве идентификаторов, код будет искать div с идентификатором текущего элемента массива. Если он найдет, он добавит innerHTML соответствующего div в строку returnVal, и каждое значение будет разделено запятыми. Тем не менее, я настоятельно рекомендую первый код.