我可以使用JS或JQuery检查列表是否包含特定值吗?
我的代码:
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:的解决方案,但那不是我想要的。
答案 0 :(得分:3)
在li元素列表上使用Array.prototype.some
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>
答案 1 :(得分:2)
您实际上只能使用香草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])
}
}
干杯