
[英]How to check if an html element contains it's own text (contains textNode)
[英]How to check if html if any html element contains text from some Object
我有一些带有标签和值的对象。 这些元素保存一些数据。 现在,我想循环处理html元素并检查什么元素与此元素匹配。 对象称为ui。
现在,我想从任何对象元素中选择包含文本的所有元素。 这些元素具有.img类。 下面是简单的javascript:
$("#project").autocomplete({
source: Items,
appendTo: ".autocomplete",
minLength: 2,
response: function (event, ui) {
if (ui.content.length == 0) {
return false;
}
var content = ui.content[0].label;
$.each($('.img'), function () {
if ($(this).is(':contains(' + content + ')')) {
return;
} else {
$(this).fadeOut(100);
}
});
}
});
此代码充当自动完成功能,我想隐藏所有与ui对象中的数据不匹配的润色剂。 这段代码对我来说几乎可以正常工作,但是有一件事情会破坏事情:
var content = ui.content[0].label;
这仅从对象中选择第一项,而我正在寻找一种方法,不仅从第一对象元素[0]中检查所有对象,以检查文本是否包含数据。
谢谢你的建议。
您可以在$ each回调中添加循环:
$.each($('.img'), function() {
for (var i = 0; i < ui.content.length; i++) {
var content = ui.content[i].label;
...
}
});
编辑:更改为var
我为您创建了一个jsfiddle,如果我理解这个问题
var matchLabelString=_.reduce(ui,function(accumulateString,current){
if(accumulateString == ""){
return current.label;
}
return accumulateString + "|"+current.label;
},"")
var regex = new RegExp("^"+matchLabelString);
$.each($('.img'), function () {
if (regex.test($(this).text())) {
return;
} else {
$(this).fadeOut(100);
}
});
https://jsfiddle.net/3o1oy5y2/
编辑:我看到您的代码,并且我认为我的代码仍然可以工作。 尝试一下,您会看到我已经使用下划线库来创建由|分隔的字符串。 从数组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.