Javascript 如何通过更换和拆分缩短过滤器功能?
我将一个过滤器函数与replace()和split()结合使用。看起来像这样Javascript 如何通过更换和拆分缩短过滤器功能?,javascript,jquery,filter,replace,split,Javascript,Jquery,Filter,Replace,Split,我将一个过滤器函数与replace()和split()结合使用。看起来像这样 jQuery('table .abc').filter((i, el) => jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0] + ' ' + jQuery(el).text().replace('a', 'b').split(' ')[1])) 有没有办法缩短它,使我不必使用相同的替换和拆分功能两次?因为我只需要组合[0]和[1
jQuery('table .abc').filter((i, el) => jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0] + ' ' + jQuery(el).text().replace('a', 'b').split(' ')[1]))
有没有办法缩短它,使我不必使用相同的替换和拆分功能两次?因为我只需要组合[0]和[1]。来缩短代码
jQuery('table .abc').filter((i, el) =>
jQuery(el).text(jQuery(el).text().replace('a', 'b').split(' ')[0]
+ ' '
+ jQuery(el).text().replace('a', 'b').split(' ')[1]))
您可以使用for.text()
,它接受一个函数并为选择中的每个元素调用该函数(这是您正在做的,但更简洁)
由于您似乎只使用了前两个单词,因此也可以使用.slice(0,1)
giving:
$("table .abc").text((i,txt) => txt.replace("a","b").split(" ").slice(0, 2).join(" ") );
工作示例:
$(“table.abc”).text((i,txt)=>txt.replace(“a”,“b”).split(“”)。slice(0,2)。join(“”)代码>
这不仅仅是两个字
这是第二行
一句话
离题:看起来您使用的.filter()
不正确,应该是.each()
。您不需要。每个,因为您可以使用do$(选择).text(函数(i,text){返回文本。替换…