只是想知道,为什么不做以下?
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 + ",";
}
}
此代码扫描所有文件。对于ids数组中提供的每个id,代码将搜索具有当前数组元素的id的div。如果它会找到,那么它将在returnVal字符串中添加相关div的innerHTML,并且每个值都将用逗号分隔。不过,我强烈推荐第一个代码。
***之前*** [他是](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)*** – Will 2011-04-18 15:06:52
如果你想解释你的问题而不是一个可能的解决方案,我们可能会想出更好的答案。 – Niklas 2011-04-18 15:10:50
虽然我同意Niklas,但我已经留下了一个答案,可以帮助你。我们真的需要知道你在做什么,大局是什么。 – Josh 2011-04-18 15:15:24