我使用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);
}
});
答案 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));
}
在我想要替换的角色之前使用所有内容的子串,我想要的新角色,然后是我想通过操纵子串替换角色之后的所有内容。