javascript:将带有特殊字符的参数传递给函数而不进行替换

时间:2017-05-01 08:42:48

标签: javascript function

我需要向javascript函数传递一些具有特殊字符的数据,如

#228;

完整字符串将如下所示

Bundesland Kärnten

我的javascript函数看起来像这样

function my_fumc(arg){
    console.log(arg);
} 

如果我按以下方式调用此功能

my_fumc('Bundesland Kärnten')

我进入控制台

Bundesland Kärnten

而不是

Bundesland Kärnten

所以,

Kä

被替换。

我尝试了不同的方法来解决这个问题。 1.将变量作为参数

my_var = 'Bundesland Kärnten';
my_fumc(my_var)

它有效,但我认为这不是一个好的解决方案。我也尝试使用像

这样的encodeURI()函数
my_fumc(encodeURI('Bundesland Kärnten'))

结果我得到了:

Bundesland%20K%C3%A4rnten

我准备了一个非常简单的jsfiddle,以显示在将特殊字符传递给函数时javascript的行为。

请帮我找一个解决方案。

1 个答案:

答案 0 :(得分:0)

正如Kaiido所指出的,问题更多地与HTML的运作方式有关。

选项可能更像是:

var txt = ["Bundesland Kärnten 01", "Bundesland Kärnten 02"];

function my_func(e){
	var idx = (this.id == "t1") ? 0 : 1;
	console.log(txt[idx]);
}

window.onload = function() {
	document.getElementById("t1").addEventListener("click",my_func,true);
	document.getElementById("t2").addEventListener("click",my_func,true);
}
<button id="t1">button 1</button>
<button id="t2">button 2</button>