Как проверить, имеет ли элемент <li>заданное значение c - PullRequest
1 голос
/ 16 января 2020

Могу ли я проверить с помощью JS или JQuery, содержит ли список указанное значение c или нет?

Мой код:

HTML:

  <ul class="list-group list-group-flush" id="liste">
  </ul>

JavaScript:

<script type="text/javascript">
  document.getElementById('Add').onclick = function() {
    var Nutzer = document.getElementById('Suche').value;
    var Liste = document.getElementById('liste');
    if (! $("li:has(Test)")) {
      var entry = document.createElement('li');
      entry.setAttribute( 'class', 'list-group-item' );
      entry.appendChild(document.createTextNode(Nutzer));
      Liste.appendChild(entry);
    }
}
</script>

Я нашел решения только с li: содержит, но это не то, что я хочу.

Ответы [ 2 ]

3 голосов
/ 16 января 2020

Используйте Array.prototype.some в списке элементов li

console.log([...$("#liste li")].some(el => $(el).text() === "Test"));
console.log([...$("#liste li")].some(el => $(el).text() === "Anything Else"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="list-group list-group-flush" id="liste">
  <li>Test</li>
</ul>
2 голосов
/ 16 января 2020

Вы можете сделать это только с ванилью JS на самом деле ...

Взгляните:

HTML:
  <ul>
      <li>Banana</li>
      <li>Apple</li>
      <li>Test</li>
      <li>Cucumber</li>
      <li>Coconut</li>
  </ul>

JS:
  const li = document.querySelectorAll('ul li');
  for (let i = 0; i < li.length; i++) {
    // it is the same as contains
    if (/Test/g.test(li[i].textContent)) {
        console.log('I am the <li> you want', li[i])
    }
    // it is the same as equal to
    if (li[i].textContent === 'Test') {
        console.log('I am the <li> you want', li[i])
    }

  }

Ура,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...