繁体   English   中英

如何通过更换和拆分缩短过滤器 function?

[英]how to shorten filter function with replace and split?

我将过滤器 function 与 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]))

有没有办法缩短它,所以我不必使用相同的替换和拆分 function 两次? 因为我只需要结合 [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]))

您可以使用.text()重载,它采用 function 并为选择中的每个元素调用 function (这就是您正在做的,但更简洁)。

看起来您只使用前两个单词,您也可以使用.slice(0,1)给出:

$("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(" "));
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table> <tr> <td class='abc'>This is more than two words</td> </tr> <tr> <td class='abc'>Here is a second line</td> </tr> <tr> <td class='abc'>OneWord</td> </tr> </table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM