JQuery,如果在变量数组中找到,则查找并替换文本
我们的网站上有一个feed,它没有将产品品牌和产品名称与产品名称分开:JQuery,如果在变量数组中找到,则查找并替换文本,jquery,html,arrays,Jquery,Html,Arrays,我们的网站上有一个feed,它没有将产品品牌和产品名称与产品名称分开: <div class="productTitle">Brand 1 Product Name</div> 品牌1产品名称 我们希望将品牌分开,这样我们就可以将其包装在自己的div中,并使其风格不同: <div class="productTitle"><div class="brandName">Brand 1</div> Product Name</di
<div class="productTitle">Brand 1 Product Name</div>
品牌1产品名称
我们希望将品牌分开,这样我们就可以将其包装在自己的div中,并使其风格不同:
<div class="productTitle"><div class="brandName">Brand 1</div> Product Name</div>
品牌1产品名称
有一个过滤器列表(您可以通过该列表筛选品牌),其中包含所有品牌名称
因此,我一直试图从列表中的每个项目中提取所有文本:
<ul class="filters">
<li>Brand 1</li>
<li>Brand 2</li>
<li>Brand 3</li>
<li>Brand 4</li>
</ul>
- 品牌1
- 品牌2
- 品牌3
- 品牌4
将它们存储为数组,然后如果在产品标题文本中找到数组中的任何项,则将该部分包装到它自己的div中以进行样式设置
到目前为止,我已经将列表中的每个项目存储在一个数组中,但无法让它正确查看整个数组,如果它在每个产品标题中找到任何匹配的文本,请将匹配的文本换行:
var brandText =[];
$('.filters li').each(function(index, obj) {
brandText.push($(this).text());
});
$('.productTitle').html(function (index, text) {
this.innerHTML = text.replace(brandText, "<div class='brandName'>" + brandText + "</div>");
});
$(window).ajaxComplete(function(){
$('.productTitle').html(function (index, text) {
this.innerHTML = text.replace(brandText, "<div class='brandName'>" + brandText + "</div>");
});
});
var brandText=[];
$('.filters li')。每个(函数(索引,obj){
brandText.push($(this.text());
});
$('.productTitle').html(函数(索引,文本){
this.innerHTML=text.replace(brandText,“+brandText+”);
});
$(窗口).ajaxComplete(函数(){
$('.productTitle').html(函数(索引,文本){
this.innerHTML=text.replace(brandText,“+brandText+”);
});
});
当I console.log varbrandText时,它返回控制台中的所有122个品牌,但在每个产品标题(通常每页60个产品)中找不到文本,并将该文本换行
有人能帮忙吗
谢谢因为brandText是一个品牌数组,所以您必须循环每个品牌。您必须迭代
brandText
数组,并替换所有出现的品牌(如果有)。这样就足够了:
$('.productTitle').html(function(index, text) {
brandText.forEach(function(brand) {
text = text.replace(brand, "<div class='brandName'>" + brand + "</div>");
});
return text;
});
- 品牌1
- 品牌2
- 品牌3
- 品牌4
品牌1产品名称
品牌2产品名称
品牌3产品名称
Brand 4 Product Name
brandText是一个数组,我认为您无法将数组传递到。替换时,您需要循环数组并分别替换每个数组(不确定是否有更有效的方法)