Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery选择包含最小文本字符数的段落_Javascript_Jquery - Fatal编程技术网

Javascript jQuery选择包含最小文本字符数的段落

Javascript jQuery选择包含最小文本字符数的段落,javascript,jquery,Javascript,Jquery,我试图以最少500个字符的段落为目标。然后将它们用作选择器,在符合此标准的段落中每隔3段插入一个div.in-between 我知道我们可以使用以下方法进行页面和单个段落文本字符计数: 文本字符计数:$('div.container').Text().replace(/[^A-Z]/gi')。长度 段落计数:$('div.container p').text().split('').length 如何使用jQuery实现这一点?您可以使用筛选器以最少500个字符的元素为目标。 \W正则表达式删除

我试图以最少500个字符的段落为目标。然后将它们用作选择器,在符合此标准的段落中每隔3段插入一个
div.in-between

我知道我们可以使用以下方法进行页面和单个段落文本字符计数:
文本字符计数:
$('div.container').Text().replace(/[^A-Z]/gi')。长度

段落计数:
$('div.container p').text().split('').length


如何使用jQuery实现这一点?

您可以使用筛选器以最少500个字符的元素为目标。
\W
正则表达式删除与a-z、a-z、0-9和下划线不匹配的任何内容

过滤集合后,您可以使用
$.grep
获取每三个元素,并在每个元素后面插入一个div

var paragraphs = $('p').filter(function() {
    return $(this).text().replace(/\W/g, '').length > 500;
});

var nth3 = $.grep(paragraphs, function(_, index) {
    return (index + 1) % 3 === 0;
})

$(nth3).after('<div class="in-between"></div>');
var段落=$('p')。过滤器(函数(){
返回$(this).text().replace(/\W/g')。长度>500;
});
var nth3=$.grep(段落,函数(u3;,索引){
收益率(指数+1)%3==0;
})
$(nth3)。在('')之后;

谢谢你的回答。我得到一个错误:
uncaughttypeerror:Object[Object Array]没有'after'方法。
@Steve-Yep,忘记包装最后一个变量,$。grep返回一个数组。没错。令人惊叹的!非常感谢你。非常好的解决方案!:)@史蒂夫-谢谢,如果你把可读性扔出窗外,你甚至可以把它们都打包成一个,只是为了好玩->