Заменить цикл с помощью функции forEach - PullRequest
0 голосов
/ 25 сентября 2018

Я хотел бы заменить цикл на функцию 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 Ответ

0 голосов
/ 26 сентября 2018

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

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

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

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

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

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

...