Заменить цикл с помощью функции forEach

Я хотел бы заменить цикл с forEach функция как цикл не работает в Splunk JavaScript.

Причина, по которой цикл for не работает, заключается в том, что мой код JavaScript встроен в XML, и когда я использую < или же > символы в моем коде JavaScript, я получаю ошибку из-за них.

function myFunction() {
  // Declare variables
  var input, filter, ul, li, a, i;
  input = document.getElementById("mySearch");
  filter = input.value.toUpperCase();
  ul = document.getElementById("myMenu");
  li = ul.getElementsByTagName("li");

  // Loop through all list items, and hide those who don't match the search query
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Search.." title="Type in a category">

<ul id="myMenu">
  <li><a href="#">HTML</a></li>
  <li><a href="#">CSS</a></li>
  <li><a href="#">JavaScript</a></li>
  <li><a href="#">PHP</a></li>
  <li><a href="#">Python</a></li>
  <li><a href="#">jQuery</a></li>
  <li><a href="#">SQL</a></li>
  <li><a href="#">Bootstrap</a></li>
  <li><a href="#">Node.js</a></li>
</ul>

1 ответ

Похоже, у вас проблема с выходом XML, поскольку ваш JavaScript встроен в документ XML в настройках Splunk. Вместо того, чтобы переписать свой JavaScript, чтобы не использовать < а также > символов, более разумно было бы правильно экранировать эти символы в XML, чтобы вы могли использовать их как обычно.

Вы можете использовать CDATA раздел, чтобы синтаксический анализатор XML знал, что вы пишете простой текст, а не XML, чтобы он не подавился < а также > персонажи. Сделать CDATA раздел, просто оберните ваш код, как это в документе XML:

<![CDATA[
    ...your code here...
]]>

Это говорит читателю XML, что все, что находится между этими тегами, следует понимать буквально, а не пытаться анализировать его как XML. Это должно удерживать парсер XML от жалоб на то, что вы ошиблись < а также > персонажи.

Дополнительные сведения о экранировании значений в XML см. В ответе на переполнение стека:

Какие символы мне нужно экранировать в документах XML?

Другие вопросы по тегам