0

我正在使用以下代码使用 jquery 设置标签的文本,这工作正常,但是当字符串包含空格时,它会在空格处显示“%”:

function getUrlVars() {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }

function setText() {
        $('[id$=lblQuestionText]').html(getUrlVars()["data"]);
    }

当字符串包含像“This is text”这样的空格时,它会显示像“this%is%text”这样的输出

我已经尝试过“.text()”和“.html()”,但它们都不适合我,请帮助我如何显示带有空格的字符串。

4

3 回答 3

2

我认为你可以使用decodeURIComponent()功能:

改变这个:

return vars;

对此具有decodeURIComponent()功能:

return decodeURIComponent(vars);
于 2013-09-24T12:52:51.640 回答
0

JSFiddle:http: //jsfiddle.net/TrueBlueAussie/WEkrt/

如果您不想解码整个 URL,还可以使用全局替换匹配将 % 转换为空格。

var text = "this%is%text";
text = text.replace(/\%/g, ' ')
$('[id$=lblQuestionText]').text(text);

或在您的特定情况下:

$('[id$=lblQuestionText]').text(getUrlVars()["data"].replace(/\%/g, ' '));

于 2013-09-24T13:01:25.893 回答
-2

您应该尝试使用 innerHTML而不是htmltext

于 2013-09-24T12:50:24.543 回答