[英]How can i search ordered list using the “each” function in JQuery
我想使用jquery進行此循環,但我做不到。
this.isFound = function (li, text){ for(var i = 0; i<li.length; i++){ if(li[i].innerHTML == text){ this.showError("Sorry, You can't enter a string twice"); return true; break; } } return false; };
$.each(this.list, function(i, item){ if(this.text == item.innerHTML){ return true; } });
我該如何使用JQuery中的each或grep或任何其他函數來做到這一點? 提前致謝
您可以使用$.grep()
返回匹配數組,或使用.filter()
返回jQuery元素集合,其中回調的返回值應為Boolean
true
或false
$.grep()
$(function() { var text = "abc"; var res = $.grep($("li"), function(el, index) { return el.textContent === text }); // `res` is an array containing one or more `DOM` elements console.log(res); res[0].style.color = "red"; })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <ul> <li>abc</li> <li>def</li> <li>ghi</li> </ul>
.filter()
$(function() { var text = "def"; var res = $("li").filter(function(index, el) { return el.textContent === text }); // `res` is a jQuery object containing one or more `DOM` elements // where jQuery methods can be chained console.log(res); res.css("color", "green"); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <ul> <li>abc</li> <li>def</li> <li>ghi</li> </ul>
如果您要確定給定元素是否具有.textContent
,並且如果為true
,則可以使用.is()
,它返回一個Boolean
; true
或false
$(function() { var text = "ghi"; var i = 0; var res = $("li").is(function(index, el) { i = index; return el.textContent === text }); // `res` is a `Boolean` console.log(res); if (res) { alert(text + " has already been set"); $("li").eq(i).css("color", "gold"); } })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <ul> <li>abc</li> <li>def</li> <li>ghi</li> </ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.