Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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_Html_Css - Fatal编程技术网

Javascript jQuery使用此语法或最接近的语法

Javascript jQuery使用此语法或最接近的语法,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一些带有标记和段落的HTML,我应该为包含单引号的段落指定类名“ 我试着用下面的方法 $('p').each(function() { if($("p:contains('“')").length) { $(this).replaceWith(function () { return "<div class='quotetext'>" + $(this).html() + "<

我有一些带有标记和段落的HTML,我应该为包含单引号的段落指定类名<代码>“

我试着用下面的方法

$('p').each(function() {                                      
            if($("p:contains('“')").length) {
$(this).replaceWith(function () {
return "<div class='quotetext'>" + $(this).html() + "</div>";
});
}
});
$('p')。每个(函数(){
if($((“p:contains(“)”))).length){
$(this).replaceWith(函数(){
返回“+$(this.html()+”;
});
}
});
但是这会覆盖所有的p标记。我还尝试使用了类似于
$(this.nestest.replaceWith)(function(){

但是仍然没有运气。非常感谢您的帮助。

您需要帮助

$('p:contains("“")').each(function () {
    $(this).replaceWith(function () {
        return "<div class='quotetext'>" + $(this).html() + "</div>";
    });
});
$('p:contains(“”))。每个(函数(){
$(this).replaceWith(函数(){
返回“+$(this.html()+”;
});
});
演示:

如果至少有1个
p
具有
”内容,而不仅仅是当前循环的内容,则每个循环中的
if
条件将被评估为true,因此将对页面中的每个
p
元素执行
replaceWith


相反,您只能迭代那些内容为
p
元素,如上图所示。

一些简单的jquery和JSFIDLE:

这将循环遍历段落标记,测试它们的内容是否有一个双引号(或多或少会失败),并将
has_quote
类添加到任何匹配项中

$('p').each(function (i, el) {
    var p = $(el);
    if (/^[^"]*"[^"]*$/.test(p.text())) {
      p.addClass('has_quote');
    }
});

错误:未捕获的语法错误:意外标记非法