代码之家  ›  专栏  ›  技术社区  ›  Wiram Rathod

替换在iPad中不起作用,如何在iPad中使用替换?

  •  0
  • Wiram Rathod  · 技术社区  · 12 年前

    我用了下面的代码来替换html,它在浏览器中工作,但在iPad Safari浏览器中不工作。如何解决这个问题?

    var text=$('#content_area').html();
    var text2=text.replace('<span style="background-color: rgb(233, 207, 236);">proposes</span>'
    , 'proposes'); 
    $('#content_area').html(text2);
    
    1 回复  |  直到 2 年前
        1
  •  3
  •   JJJ Sergey    12 年前

    你做错了。不要修改原始HTML字符串,修改DOM。

    $( '#content_area span:contains("proposes")' ).replaceWith( 'proposes' );
    

    能够 也可以根据背景颜色进行选择,但不那么可靠。问题很可能是Mobile Safari没有将颜色保持为rgb(),而是使用十六进制格式,所以这样的方法可能会奏效:

    $( '#content_area span' ).filter(function() {
        return ( $(this).css('background-color') === 'rgb(233, 207, 236)' 
              || $(this).css('background-color').toLowerCase() === '#e9cfec' );
    }).replaceWith( 'proposes' );
    

    最好的解决方案是,您可以向跨度添加一个类,或者以其他方式可靠地区分它们,以便选择器是明确的。