Javascript 从数组中获取包含文本的元素
我想搜索数组中包含任何字符串的所有元素。 例如 我有下列物品清单Javascript 从数组中获取包含文本的元素,javascript,jquery,html,arrays,contains,Javascript,Jquery,Html,Arrays,Contains,我想搜索数组中包含任何字符串的所有元素。 例如 我有下列物品清单 <ul> <li>cricket bat</li> <li>tennis ball</li> <li>golf ball</li> <li>hockey stick</li> </ul> 它应该选择所有具有文本bat和ball的元素。如何使用jquery或javascript实现
<ul>
<li>cricket bat</li>
<li>tennis ball</li>
<li>golf ball</li>
<li>hockey stick</li>
</ul>
它应该选择所有具有文本bat和ball的元素。如何使用jquery或javascript实现这一点
这就是我想要的
filter = 'bat ball';
var lis = row('UL li');
var flag = 0;
for (var i = 0; i < lis.length; i++) {
var name = lis[i].getElementsByTagName('a')[0].innerHTML;
if (name.toUpperCase().indexOf(filter) > -1) {
flag = 1;
} else {
lis[i].style.display = 'none';
}
}
filter='batball';
var lis=世界其他地区(“UL li”);
var标志=0;
对于(变量i=0;i-1){
flag=1;
}否则{
lis[i].style.display='none';
}
}
您可以使用伪选择器:
选择包含指定文本的所有元素
您可以使用
在这种情况下,我想你指的是这些价值观中的任何一种
var-arr=['bat','ball'];
var选择器=arr.map(函数(val){
return':包含(“+val+”)'
});
var$lis=$('ulli').filter(selectors.join());
$lis.css('color','red')
- 板球棒
- 网球
- 高尔夫球
- 曲棍球棒
尝试使用.filter()
,.match()
var arr=[“球拍”、“球”];
var res=Array.prototype.filter.call(document.querySelectorAll(“li”)
,函数(el,索引){
返回el.textContent.match(新的RegExp(arr.join(“|”))!==null
});
控制台日志(res)代码>
- 板球棒
- 网球
- 高尔夫球
- 曲棍球棒
试试这个:
$.each(["bat", "ball"], function (i,val) {
if ($("ul li:contains(" + val + ")").length) {
$("ul li:contains(" + val + ")").css('color', 'red')
}
})
数组的值可以更改,它可以是100个字到1个字。我该如何使用它?@Twix将数组中的每个元素添加为,
,如上图所示分隔开来。也许其中有一些元素?我可以只获取那些以任何顺序包含数组中所有字符串的列表项吗?例如'bat ball'或'ball bat'或'hockey bat and cricket ball'@Twixvar$lis=$('ul li').filter(selectors.join('')代码>
$('li:contains("bat"), li:contains("ball")')
$.each(["bat", "ball"], function (i,val) {
if ($("ul li:contains(" + val + ")").length) {
$("ul li:contains(" + val + ")").css('color', 'red')
}
})