我使用以下代码使用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()”,但它们都没有为我工作,请帮助我如何显示字符串,因为它带有空格。
答案 0 :(得分:2)
我认为您可以使用decodeURIComponent()
功能:
改变这个:
return vars;
使用decodeURIComponent()
函数进行此操作:
return decodeURIComponent(vars);
答案 1 :(得分:0)
如果您不想解码整个网址,也可以使用全局替换匹配将%转换为空格。
var text = "this%is%text";
text = text.replace(/\%/g, ' ')
$('[id$=lblQuestionText]').text(text);
或在您的具体案例中:
$('[id $ = lblQuestionText]')。text(getUrlVars()[“data”]。replace(/ \%/ g,''));
答案 2 :(得分:-2)
您应该尝试使用innerHTML
代替html
和text