0

我已经尝试使用这些问题中提到 技术,但我没有任何运气。我正在尝试调整 Javascript 函数以使用该方法检索多个 div。 getElementById

这是检索 div 的函数中的当前代码行#cat1

  var elem = document.getElementById(cat1);

展望未来,我需要这个函数来检索 div #cat2

如果有更好的方法可以使用他们的库来完成这个,那么可以加载 jQuery 吗?


这是完整的功能(参考第 3 行):

function getCategories(initial) {
  var i;
  var elem = document.getElementById('cat1');
  if (initial == 1) {
  jsonGroups = "";
  jsonGroups = '{ xml: [], "pin": [] ';
  for (i = 0; i < elem.childNodes.length; i++) {
    if (elem.childNodes[i].nodeName == "LI") {
      jsonGroups = jsonGroups + ',  "' + elem.childNodes[i].attributes.getNamedItem("id").value + '": [] ';
    }
  }
  jsonGroups = jsonGroups + "}";
  markerGroups = eval('(' + jsonGroups + ')');

for (i = 0; i < elem.childNodes.length; i++) {
      if (elem.childNodes[i].nodeName == "LI") {
        var elemID = elem.childNodes[i].attributes.getNamedItem("id").value;
        if (elemID != "user") {
          elem.childNodes[i].innerHTML = "<a onclick='" + 'toggleGroup("' + elemID + '")' + "'>" + elem.childNodes[i].innerHTML + "</a>";
        } else {
          elem.childNodes[i].innerHTML = '<form id="userPOIForm" action="#" onsubmit="userPOIFind(this.userPOI.value); return false"><input id="userPOITxt" size="20" name="userPOI" value="' + elem.childNodes[i].innerHTML + '" type="text"><input id="userPOIButton" value="Go" type="submit"> </form>';

        }
        if (hasClass(elem.childNodes[i], "hidden") !== null) {
          elem.childNodes[i].setAttribute("caption", "hidden");
        } else {
          elem.childNodes[i].setAttribute("caption", "");
        }
        if (elem.childNodes[i].attributes.getNamedItem("caption").value != "hidden") {
          classAdder = document.getElementById(elemID);
          addClass(classAdder, "visibleLayer");
        }
      }
    }
  }
  for (i = 0; i < elem.childNodes.length; i++) {
    if (elem.childNodes[i].nodeName == "LI") {
        var catType = elem.childNodes[i].attributes.getNamedItem("id").value;

      result = doSearch(elem.childNodes[i].attributes.getNamedItem("title").value, elem.childNodes[i].attributes.getNamedItem("id").value);
    }
  }
}
4

2 回答 2

4

如果您尝试选择以id开头的所有元素cat,您可以在 jQuery 中执行此操作,如下所示:

$("[id^=cat]")

jQuery:属性以选择器开头

于 2012-12-23T16:23:39.343 回答
2

只需将categoriesList其设为另一个参数,然后调用该函数两次。

于 2012-12-23T16:19:10.193 回答