使用str.charAt()替换字符

时间:2014-04-29 21:39:28

标签: jquery ajax string

我使用AJAX和PHP生成HTML,但我不希望显示任何“下划线”。因此,我使用循环来对AJAX结果进行排序,通过“警报测试”我知道正在显示正确的字符和相应的“displayedText”值,并且它正确地识别“下划线”字符。但当我尝试用“result.charAt(x)='';”替换它们时循环爆炸并且无法运行。

这是我的剧本:

            $.ajax({                                                          
                  url: '/php/SubMenuBar.php',         
                  data: {
                          MainCategory: mainCategory,
                        },

                  success: function(result)
                 {
                        var displayedText = true;

                        for (var x = 0; x < result.length; x++)
                        {
                            var c = result.charAt(x);

                            alert( c + displayedText);

                            if (c == '<')
                            {
                                displayedText = false;  
                            }
                            else if (c == '>')
                            {
                                displayedText = true;   
                            }

                            if (displayedText && c == '_')
                            {   
                                alert('Found one');                             
                                result.charAt(x) = ' '; //SCRIPT BLOWS UP HERE
                                alert("'" + result.charAt(x) + "'"); //THIS ALERT NEVER FIRES AND THE LOOP EXITS
                            }
                        }

                        subMenuBar.html(result); 
                  }
                });     

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。我换了

if (displayedText && c == '_')
                    {   
                        alert('Found one');                             
                        result.charAt(x) = ' '; //SCRIPT BLOWS UP HERE
                        alert("'" + result.charAt(x) + "'"); //THIS ALERT NEVER FIRES AND THE LOOP EXITS
                    }

有了这个:

if (displayedText && c == '_')
{   
    alert('Found one');
    result = result.substring(0,x) + ' ' + result.substring(x + 1, result.length);
    alert(result.charAt(x));
}

在我想要替换的角色之前使用所有内容的子串,我想要的新角色,然后是我想通过操纵子串替换角色之后的所有内容。