Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Jquery 使用contains替换Div中的文本(匹配)_Jquery - Fatal编程技术网

Jquery 使用contains替换Div中的文本(匹配)

Jquery 使用contains替换Div中的文本(匹配),jquery,Jquery,jsFiddle: 我试图替换div中的文本,但似乎无法理解它为什么不起作用 HTML: 理想情况下,预期的输出应该是:xyz foo bar但它仍然是abc foo bar,我做错了什么?当您执行$('div.text:contains(match)')时,您正在搜索包含文字字符串“match”的div 您可以这样做:$('div.text:contains('+match+')) 只需注意,变量match不包含对jquery选择器有意义的任何内容,例如)当您执行$('div.text:con

jsFiddle:

我试图替换div中的文本,但似乎无法理解它为什么不起作用

HTML:

理想情况下,预期的输出应该是:
xyz foo bar
但它仍然是
abc foo bar
,我做错了什么?

当您执行
$('div.text:contains(match)')
时,您正在搜索包含文字字符串“match”的div

您可以这样做:
$('div.text:contains('+match+'))

只需注意,变量match不包含对jquery选择器有意义的任何内容,例如

当您执行
$('div.text:contains(match)')
时,您正在搜索包含文本字符串'match'的div

您可以这样做:
$('div.text:contains('+match+'))


请注意,变量匹配不包含任何对jquery选择器有意义的内容,例如

您的代码有一些问题:

  • 您正在搜索“匹配”,而不是变量
    match
    的值

  • 您的
    if
    语句毫无意义,因为您在下一行有一个新的
    div.text
    选择器。因此,如果其中一个元素匹配,您的代码将针对所有匹配的元素运行此操作

  • 您的
    html()
    方法没有返回任何内容

  • replaceText()
    不是标准函数。除非这是您制作的自定义函数,或者您正在使用,否则请将其替换为
    replace()


  • 现场演示:


    如果要替换多个“abc”实例,请使用正则表达式:

    var match = 'abc';
    var re = new RegExp(match,"g");
    $("div.text:contains(" + match + ")").each(function(){
       var $this = $(this);
        $this.html(function(){
            return $this.html().replace(re, "xyz");
        });
    });
    

    实时演示

    您的代码存在一些问题:

  • 您正在搜索“匹配”,而不是变量
    match
    的值

  • 您的
    if
    语句毫无意义,因为您在下一行有一个新的
    div.text
    选择器。因此,如果其中一个元素匹配,您的代码将针对所有匹配的元素运行此操作

  • 您的
    html()
    方法没有返回任何内容

  • replaceText()
    不是标准函数。除非这是您制作的自定义函数,或者您正在使用,否则请将其替换为
    replace()


  • 现场演示:


    如果要替换多个“abc”实例,请使用正则表达式:

    var match = 'abc';
    var re = new RegExp(match,"g");
    $("div.text:contains(" + match + ")").each(function(){
       var $this = $(this);
        $this.html(function(){
            return $this.html().replace(re, "xyz");
        });
    });
    
    现场演示

    请参阅

    两件事

  • ”(“+match+”)”
  • 您忘记了在关闭html调用的函数后面有一个括号
  • 函数replaceText的js文件(@Jasen谢谢!)
  • 两件事

  • ”(“+match+”)”
  • 您忘记了在关闭html调用的函数后面有一个括号
  • 函数replaceText的js文件(@Jasen谢谢!)

  • 这似乎是在一行中完成的(不包括您的var声明):

    如果需要if语句,则不需要,并用
    replace
    代替
    replaceText

    如果有多个匹配项,请使用以下选项:

    var match = 'abc';
    $('div.text:contains(' + match + ')').each(function () {
        $(this).text($(this).text().replace(match, 'xyz'));
    });
    

    这似乎是在一行中完成的(不包括您的var声明):

    如果需要if语句,则不需要,并用
    replace
    代替
    replaceText

    如果有多个匹配项,请使用以下选项:

    var match = 'abc';
    $('div.text:contains(' + match + ')').each(function () {
        $(this).text($(this).text().replace(match, 'xyz'));
    });
    

    'div.text:contains(“+match+”)
    前提是包含
    replaceText
    插件
    'div.text:contains(“+match+”)”
    前提是包含
    replaceText
    插件3。jquery.ba-replacetext.js3。jquery.ba-replacetext.js同一div中包含的
    abc
    的多个实例如何?同一div中包含的
    abc
    的多个实例如何?同一div中包含的
    abc
    的多个实例如何?
    $(document).ready(function(){
        var match = 'abc';
        if ($('div.text:contains('+match+')')) {
            $('div.text').html(function(){
                $(this).replaceText(match, 'xyz');
            });
        }
    });
    
    var match = 'abc';
    $('div.text:contains(' + match + ')').text($('div.text:contains(' + match + ')').text().replace(match, 'xyz'));
    
    var match = 'abc';
    $('div.text:contains(' + match + ')').each(function () {
        $(this).text($(this).text().replace(match, 'xyz'));
    });