【问题标题】:Jquery works in console but not on page on replaceJquery 在控制台中工作,但不在替换页面上
【发布时间】:2014-05-08 19:36:06
【问题描述】:

我有一个包含多个“â”字符的字符串,所以我创建了这个 jquery 函数来替换它们(不能在服务器端执行)。

$(document).ready(function() {
       $('#tab-3').click(function(){
             $('#tab-3').html($('#tab-3').html().replace(/â/g, '•'));
       });

 });

现在,如果我在控制台中运行此代码 $('#tab-3').html($('#tab-3').html().replace(/â/g, '•'));,则它可以工作,但不能在页面上运行。

不得不说我是通过curl得到字符串的,字符是这样的,而不是â

有什么想法吗?谢谢!

更新 1:

试过这个:

setTimeout(function() {
        alert('mda');
        console.log($('#tab-3').html());
        $('#tab-3').html($('#tab-3').html().replace(/â/g, '•'));
}, 0);

Alert 有效,html() 在控制台显示内容,最后一个失败。

我开始认为是浏览器打印了 â 字符,可能是â

现在就试试这个理论!

更新 2

不起作用,尝试使用 â 而不是 ...

另一个有趣的事情..如果我这样做:

setTimeout(function() {

       console.log($('#tab-3').html().replace(/â/g, '•'));

 });

或使用â而不是â,它会按原样打印字符串...只有当我在浏览器中再次运行相同的代码时它才能工作...

我不知道下一步该做什么..

这是一个截图,证明它在浏览器中有效(上面的红色文本是我在 setTimeout 函数中所做的 console.log...

【问题讨论】:

  • 究竟是如何使用 cURL 获取元素的,是否涉及 ajax?
  • 通过帖子,作为一个包含字符串的数组......你无能为力
  • 确保在ajax/content added之后调用替换函数
  • 我试过 $(document).ajaxComplete(function(){});无济于事...还有其他想法吗?:(
  • 顺便说一句,控制台不会产生错误。

标签: javascript jquery special-characters


【解决方案1】:

最终使用echo iconv('UTF-8', 'ASCII//ignore',$string); 我不得不使用//ignore,因为它会生成一个通知..但是不是将其转换为子弹,这只是删除字符....

希望这对任何人都有帮助。谢谢大家的时间!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2016-01-20
    • 2013-06-26
    • 1970-01-01
    • 2016-08-20
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多