在javascript中进行精确搜索
Exacly search in javascript
本文关键字:搜索 javascript 更新时间:2023-09-26
如何仅在完全匹配的情况下才能在javascript中搜索文本。例如,我有这样的结构:
<ul class="item-options">
<li>First Item</li>
<li>item Name</li>
<li>product 1</li>
<li>Item Description</li>
<li>product description</li>
<li>Additional Info</li>
<li>Red</li>
<li>Color</li>
<li>Red</li>
</ul>
<ul class="item-options">
<li>Second Item</li>
<li>item Name Blue</li>
<li>product 2</li>
<li>Item Description</li>
<li>product2 description</li>
<li>Additional Info</li>
<li>-----</li>
<li>Color</li>
<li>Blue</li>
</ul>
<ul class="item-options">
<li>Third Item</li>
<li>item Name Purple</li>
<li>product 3</li>
<li>Item Description</li>
<li>-------</li>
<li>Additional Info</li>
<li>-----</li>
<li>Color</li>
<li>------</li>
</ul>
例如,我想检查页面中是否存在项目名称文本,然后如果存在>项目名称文本则删除相关联的子项。因此,对于第一个项目名称,我只需要删除颜色:
<li>Color</li>
<li>Red</li>
然后,如果存在项目名称蓝色文本,我需要删除关联的子
<li>Additional Info</li>
<li>-----</li>
如果存在第三个项目名称紫色文本,则删除相关的子项:
<li>Item Description</li>
<li>-------</li>
<li>Additional Info</li>
<li>-----</li>
<li>Color</li>
<li>------</li>
我创建了这个脚本,但例如,名称Color在所有地方都被删除了。即使在物品名称或项目名称中,紫色也必须保留在那里。我认为问题是因为第一个产品的名称为项目名称,而在第二个产品中,名称以项目名称紫色开头。
<script type="text/javascript">
jQuery(document).ready(function() {
if (jQuery('.items-class li:contains("item Name")').length > 0)
{
var parent = jQuery('.items-class');
var children = jQuery('.items-class').find("li");
jQuery(children).each(function(i,e){
if(~jQuery(e).text().indexOf("item Name Blue")){
jQuery(parent).find('li:contains("Additional Info")').html('');
jQuery(parent).find('li:contains("-----")').html('');
}
if(~jQuery(e).text().indexOf("item Name Purple")){
jQuery(parent).find('li:contains("Item Description")').html('');
jQuery(parent).find('li:contains("-------")').html('');
jQuery(parent).find('li:contains("Additional Info")').html('');
jQuery(parent).find('li:contains("-----")').html('');
jQuery(parent).find('li:contains("Color")').html('');
jQuery(parent).find('li:contains("-----")').html('');
}
else if(~jQuery(e).text().indexOf("item Name")){
jQuery(parent).find('li:contains("Color")').html('');
jQuery(parent).find('li:contains("Red")').html('');
}
});
}
});
</script>
我不太确定你在问什么,但我希望这能有所帮助。
function removeAdditionalInfo(searchCriteria){
var interestingTagSelector = "ul.item-options > li";
var additionInfoHeader = "Additional Info";
var getFilter = function(criteria){
return function(index, item){ return (item.innerHTML === criteria); };
};
// find the potentially interesting li tags
$(interestingTagSelector)
// filter out those that are not in fact interesting
.filter(getFilter(searchCriteria))
// get siblings following an interesting li tag
.nextAll()
// ignore those not starting the additional info section
.filter(getFilter(additionInfoHeader))
// get siblings following the AddInfo header
.nextAll()
// removed them
.remove();
}
removeAdditionalInfo("item Name");
下面的removeAdditionalInfo()函数和:
removeAdditionalInfo("item Name");
removeAdditionalInfo("item Name Blue");
removeAdditionalInfo("item Name Purple");
将删除其他信息项。
相关文章:
- 学生搜索项目jquery/javascript
- 正在搜索JavaScript日期选择器滑块
- 使用数组向下搜索Javascript对象
- 如何搜索JavaScript对象并更改值
- 文本框搜索/Javascript函数数组**不对应**
- 搜索输入字段以搜索 JavaScript 数组 - 如何验证空输入框
- 在字符串中搜索 javascript 中缺少的字母
- 如何在谷歌中搜索javascript文件
- 搜索JavaScript属性名称中的字符
- 在对象属性下的对象数组中搜索JavaScript中的字符串辅助
- Ajax实时搜索Javascript数据
- Linkedin人员搜索Javascript API不返回任何结果
- XML搜索或DB搜索/ javascript(客户端)或php(服务器端)计算
- 如何搜索Javascript数组,并返回数组中以X开头的所有字符串
- 是否有可能使用Javascript来搜索Javascript代码,以查找代码将尝试访问的所有url
- 在json中搜索Javascript
- 带有自动完成功能的搜索栏,用于搜索JavaScript数组/对象(不是Ajax)中的数据
- 在对象内搜索 javascript
- 是否可以在VS Code中语法上搜索Javascript
- 搜索javascript枚举